mkdir -p build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j# Install to $HOME/.local/bin by default
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
cmake --install build
# Or install system-wide (requires privilege)
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DMANAKAN_INSTALL_TO_HOME_LOCAL=OFF -DCMAKE_INSTALL_PREFIX=/usr/local
cmake --build build -j
sudo cmake --install build
# If you already configured build/ before this change, run configure again
cmake -S . -B build -DMANAKAN_INSTALL_TO_HOME_LOCAL=ON
# If you need completion
# If XDG_DATA_HOME is set, make install also places the completion script into
# $XDG_DATA_HOME/bash_completion/manakan.bashmanakanLayout:
config.toml: default provider / targetproviders/*.toml: request templatestargets/*.toml: target-specific values
If the configuration directories do not exist, manakan asks whether it should create them.
Example files stay in this repository under config/; they are not installed automatically.
Placeholder forms:
{{PLACEHOLDER}}{{env.NAME}}{{arg.name}}{{argv.N}}
URL rules:
base_urlshould contain only scheme + host, such ashttps://discord.com- if
base_urlends with/, it is normalized internally - if
pathdoes not start with/, it is normalized internally base_urlcontaining a non-root path is treated as invalid
Resolution order:
- CLI
- target
- provider
Within CLI input, --input key=value takes precedence over positional argv.
Example: if TOML uses content = "{{argv.1}}", then manakan --input content=xxx yyy
resolves content to xxx.
manakan --target alerts "message"
manakan --provider discord --target alerts "message"
manakan --target dev --input username=test-user "message"
manakan -i username=test-user -i avatar_url=https://example.com/a.png --target dev "message"
echo "message" | manakan --target alertsrm $HOME/.local/bin/manakan
rm $BASH_COMPLETION_USER_DIR/manakan.bash
rm -rf $HOME/.config/manakan