mirror of
https://github.com/rr-/pq-cli.git
synced 2026-09-29 06:44:00 -06:00
111 lines
2.9 KiB
Markdown
111 lines
2.9 KiB
Markdown
<p align="center">
|
|
<img alt="Progress Quest" src="http://progressquest.com/pq.png">
|
|
</p>
|
|
|
|
Relive the great adventure… this time in the terminal realm!
|
|
|
|
- Progress Quest site: http://progressquest.com/
|
|
- Online version: http://progressquest.com/play/
|
|
- Original version: https://bitbucket.org/grumdrig/pq
|
|
|
|
## Features
|
|
|
|
- Faithful port of the game logic
|
|
- Saves (with backups) to `$XDG_CONFIG_HOME/pqcli/save.dat`
|
|
- Terminal interface that comes in 2 flavors:
|
|
- Rich and colorful (`--curses`, default)
|
|
- Minimal, suitable for raw grind (`--basic`)
|
|
- Ideal to run on your server
|
|
|
|
## How it looks like
|
|
|
|
Curses interface:
|
|
|
|

|
|

|
|
|
|
Basic interface:
|
|
|
|

|
|
|
|
## How to install
|
|
|
|
If you have Python 3.7, just run `pip install --user pqcli` and you're good to go!
|
|
Then type `pqcli` to run the game.
|
|
|
|
In case if you want to use the git version, the process is just a bit more complex:
|
|
|
|
```console
|
|
$ git clone https://github.com/rr-/pq-cli.git
|
|
$ cd pq-cli
|
|
$ pip install --user .
|
|
```
|
|
|
|
## Docker / Docker Compose
|
|
|
|
The repository includes a `Dockerfile` and `docker-compose.yml` that run the
|
|
game with `--basic` and keep save data in a persistent named volume.
|
|
|
|
There is no registry pipeline required for this setup: build locally, then run
|
|
with Compose.
|
|
|
|
```console
|
|
# Build image locally from the Dockerfile
|
|
docker compose build
|
|
|
|
# First run (interactive): create your character in the shared save volume
|
|
docker compose run --rm pqcli-init
|
|
|
|
# Later runs on a server (detached, default save slot 1):
|
|
docker compose up -d pqcli
|
|
|
|
# List existing saves in the same volume:
|
|
docker compose run --rm pqcli-init pqcli --basic --list-saves
|
|
|
|
# Change detached slot if needed (example: slot 2):
|
|
PQCLI_SAVE_SLOT=2 docker compose up -d pqcli
|
|
|
|
# Follow logs / stop detached container:
|
|
docker compose logs -f pqcli
|
|
docker compose stop pqcli
|
|
```
|
|
|
|
On first run, if no save data exists in the mounted volume, `pqcli` will
|
|
automatically launch an interactive character-creation bootstrap in CLI mode
|
|
before starting the normal interface.
|
|
|
|
For server usage, run first-time setup without a forced slot (`pqcli-init`),
|
|
then run the long-lived detached service (`pqcli`) that loads slot `1` by
|
|
default.
|
|
|
|
## Contributing
|
|
|
|
```sh
|
|
# Clone the repository:
|
|
git clone https://github.com/rr-/pqcli.git
|
|
cd pqcli
|
|
|
|
# Install to a local venv:
|
|
poetry install
|
|
|
|
# Install pre-commit hooks:
|
|
poetry run pre-commit install
|
|
|
|
# Enter the venv:
|
|
poetry shell
|
|
```
|
|
|
|
This project uses [poetry](https://python-poetry.org/) for packaging.
|
|
Install instructions are available at [poetry#installation](https://python-poetry.org/docs/#installation).
|
|
|
|
## Troubleshooting
|
|
|
|
### `_curses.error: init_pair() returned ERR`
|
|
|
|
If running on Linux and you get the error `_curses.error: init_pair() returned ERR`,
|
|
try making sure that your `$TERM` variable is set to a value which supports
|
|
256 colors, such as via the following:
|
|
|
|
TERM=xterm-256color pqcli
|
|
|