Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jfhbrook/dosapp
https://github.com/jfhbrook/dosapp
Last synced: 11 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/jfhbrook/dosapp
- Owner: jfhbrook
- License: mit
- Created: 2024-05-10T20:24:38.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-06-10T18:27:56.000Z (5 months ago)
- Last Synced: 2024-10-18T21:01:00.178Z (20 days ago)
- Language: Go
- Size: 2.6 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dosapp
Manage DOSBox apps.
## Install
First, make sure you have all the dependencies installed:
- [DosBox-X](https://dosbox-x.com/) (or DOSBox with configuration)
- [go-task](https://taskfile.dev)
- `bash` - `dosapp` executes tasks using a shell
- `curl`
- `7zz` - Packages currently only work with .7z files, but having `unzip` and
`tar` are probably good ideas as wellThen, install `dosapp`:
```sh
go install github.com/jfhbrook/dosapp@latest
```## Getting Started
To get started, run:
```sh
dosapp config
```This will generate the initial configuration.
### Environment Variables
`dosapp` is configured through dotenv files and environment variables. The
following environment variables are respected:#### Mount Locations
- `DOSAPP_DISK_HOME`: The base location for your dosapp disks. Some apps may
create custom disks under this location.
- `DOSAPP_DISK_A`: The standard location for the A drive.
- `DOSAPP_DISK_B`: The standard location for the B drive.
- `DOSAPP_DISK_C`: The standard location for the C drive. Many apps will
require this mount to function.#### External Binaries
- `DOSAPP_DOSBOX_BIN`: The location of the DOSBox binary. Defaults to
`dosbox-x`, which has more features than DOSBox. However, this may be
overwritten in cases where vanilla DOSBox is more reliable, or is what's
installed.
- `DOSAPP_7Z_BIN`: The location of the 7z/7zz binary. The default is `7zz`.
- `EDITOR`: The editor to use for editing dotenv files. This is commonly set
to `vi`.
- `PAGER`: The pager to use for viewing READMEs. Defaults to `cat`, but is
commonly set to `less`.#### Runtime Directory Locations
These directories are typically configured to match the XDG spec, but may be
overwritten.- `DOSAPP_STATE_HOME`: The location to store non-critical app state. Defaults
to `~/.local/state/dosapp`.
- `DOSAPP_CACHE_HOME`: The location to store cached app data. Defaults to
`~/.cache/dosapp`.
- `DOSAPP_LINK_HOME`: The location to place bin scripts for apps. Defaults to
`~/.local/bin`.
- `DOSAPP_DOWNLOAD_HOME`: The location to store downloads. Defaults to
`~/.cache/dosapp/downloads`, and respects `DOSAPP_CACHE_HOME`.#### Other
- `DEBUG`: Set to `1` to enable debug logging.
## Usage
### Start DOSBox
To start DOSBox with the standard configuration and mounts, run:
```sh
dosapp
```### Install an App
To install an app, run:
```sh
dosapp install [APP_NAME]
```### Start an App
To start an installed app with app-specific configuration and mounts, run:
```sh
dosapp start [APP_NAME]
```### Create a Bin Script for an App
To create scripts for your installed app, run `dosapp link [APP_NAME]`.
For example, to create a `wp` script that launches WordPerfect:```sh
dosapp link wordperfect
```### Remove the App
To remove an app from your install, clean up any links and remove the
configuration, run:```sh
dosapp remove [APP_NAME]
```## Packages
Here's a list of packages:
- `wordperfect`
- `turbo-pascal`
- **TODO**: `dostodon`
- **TODO**: `freebasic`
- **TODO**: [As-Easy-As](http://www.triusinc.com/forums/viewtopic.php?t=10)
- **TODO**: [VGAPaint](https://www.bttr-software.de/products/vp386/)## Development
This project contains a `Taskfile`, with two tasks:
- `task check` - Run `shellcheck` against the shell scripts in the project.
- `task install` - Symlink `./bin/dosapp` to `~/.local/bin/dosapp`.## License
I'm releasing this under an MIT license. See [LICENSE](./LICENSE) for details.