barg-parser/sample.sh
2025-10-30 10:18:48 +02:00

43 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# sample.sh
# shellcheck disable=SC1091
source "$(dirname "$0")/barg" || {
echo "barg not found" >&2
exit 1
}
SPEC=(
"command;dev;Dev tool"
"argument;global;type:flag;help:Global toggle"
"command;build;Build a dev container"
"argument;from;type:option;dest:fromName;help:Base container"
"argument;name;type:positional;required;help:Container name"
"argument;image,i;type:option;required;dest:imageName;help:Base image"
"argument;verbose,v;type:flag;default:false;help:Verbose output"
"argument;cmd;type:rest;help:Command to run"
"end"
"command;stop;Stop a dev container"
"argument;name;type:positional;required;help:Container name"
"argument;kill,k;type:flag;default:false;help:Force kill"
"end"
"end"
)
cmd_build() {
echo "cmd_build:"
echo " fromName = ${fromName}"
echo " name = ${name}"
echo " imageName = ${imageName}"
echo " verbose = ${verbose}"
echo " cmd = ${cmd}"
}
cmd_stop() {
echo "cmd_stop:"
echo " name = ${name}"
echo " kill = ${kill}"
}
barg::dispatch SPEC "$@"