# Map for Linux A wardley mapping tool: Write some text, get a diagram ## Building Run `make build` ## Installing For a quick local install without packaging: * `make install` - installs to `/usr/local` (may require sudo) * `make uninstall` - removes installed files To install to a different prefix: `make install prefix=/opt/map` ## Testing Run `make test` ## Formatting and Linting * To format: `make format` * To lint: `make lint` ## Distributing Available package formats: deb, rpm, tar.gz, flatpak ### Main Targets * `make package` - creates all package types for the current architecture (no upload) * `make distribute` - signs and uploads existing packages * `make release` - full workflow (package + distribute) ### Individual Targets For more control, use individual package or distribute targets: * `make package-deb` - create .deb package * `make package-rpm` - create .rpm package * `make package-tar` - create .tar.gz archive * `make package-flatpak` - create .flatpak bundle * `make distribute-deb` - sign and upload .deb * `make distribute-rpm` - sign and upload .rpm * `make distribute-tar` - sign and upload .tar.gz * `make distribute-flatpak` - sign and upload .flatpak ### Flatpak Notes Since flatpak expects offline building, we use `flatpak-cargo-generator` to generate the sources. This will be done every time you run `make package-flatpak`. The project assumes `flatpak-cargo-generator.py` lives in `~/projects/vendor/flatpak-builder-tools/cargo`, but you can override this with the environment variable `flatpak_cargo_generator` (eg. `make -e flatpak_cargo_generator=~/your/path/to/flatpak_cargo_generator`). It expects this directory to have the poetry configuration, as it enables the virtualenv using poetry. ## Localization / Internationalization This project uses gettext for translations. You can update the template files with: ``` make extract_strings ``` This updates the available POTFILES by checking for the presence of the tr! macro or `gettext`, and extracts the strings to the template file. You can then edit the strings using a tool like Poedit. ## The wmap language Learn more about the language at [map.tranquil.systems][map]. [map]: https://map.tranquil.systems/wmap-language