#!/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 "$@"