All checks were successful
Test / Create distribution (push) Successful in 43s
Test / Sandbox (push) Successful in 2m18s
Test / Hakurei (push) Successful in 3m10s
Test / Sandbox (race detector) (push) Successful in 3m30s
Test / Hakurei (race detector) (push) Successful in 4m43s
Test / Fpkg (push) Successful in 5m4s
Test / Flake checks (push) Successful in 1m12s
Fortify makes little sense for a container tool. Signed-off-by: Ophestra <cat@gensokyo.uk>
82 lines
2.2 KiB
Plaintext
82 lines
2.2 KiB
Plaintext
#compdef hakurei
|
|
|
|
_hakurei_app() {
|
|
__hakurei_files
|
|
return $?
|
|
}
|
|
|
|
_hakurei_run() {
|
|
_arguments \
|
|
'--id[Reverse-DNS style Application identifier, leave empty to inherit instance identifier]:id' \
|
|
'-a[Application identity]: :_numbers' \
|
|
'-g[Groups inherited by all container processes]: :_groups' \
|
|
'-d[Container home directory]: :_files -/' \
|
|
'-u[Passwd user name within sandbox]: :_users' \
|
|
'--wayland[Enable connection to Wayland via security-context-v1]' \
|
|
'-X[Enable direct connection to X11]' \
|
|
'--dbus[Enable proxied connection to D-Bus]' \
|
|
'--pulse[Enable direct connection to PulseAudio]' \
|
|
'--dbus-config[Path to session bus proxy config file]: :_files -g "*.json"' \
|
|
'--dbus-system[Path to system bus proxy config file]: :_files -g "*.json"' \
|
|
'--mpris[Allow owning MPRIS D-Bus path]' \
|
|
'--dbus-log[Force buffered logging in the D-Bus proxy]'
|
|
}
|
|
|
|
_hakurei_ps() {
|
|
_arguments \
|
|
'--short[List instances only]'
|
|
}
|
|
|
|
_hakurei_show() {
|
|
_alternative \
|
|
'instances:domains:__hakurei_instances' \
|
|
'files:files:__hakurei_files'
|
|
}
|
|
|
|
__hakurei_files() {
|
|
_files -g "*.(json|hakurei)"
|
|
return $?
|
|
}
|
|
|
|
__hakurei_instances() {
|
|
local -a out
|
|
shift -p
|
|
out=( ${(f)"$(_call_program commands hakurei ps --short 2>&1)"} )
|
|
if (( $#out == 0 )); then
|
|
_message "No active instances"
|
|
else
|
|
_describe "active instances" out
|
|
fi
|
|
return $?
|
|
}
|
|
|
|
(( $+functions[_hakurei_commands] )) || _hakurei_commands()
|
|
{
|
|
local -a _hakurei_cmds
|
|
_hakurei_cmds=(
|
|
"app:Load app from configuration file"
|
|
"run:Configure and start a permissive default sandbox"
|
|
"show:Show live or local app configuration"
|
|
"ps:List active instances"
|
|
"version:Display version information"
|
|
"license:Show full license text"
|
|
"template:Produce a config template"
|
|
"help:Show help message"
|
|
)
|
|
if (( CURRENT == 1 )); then
|
|
_describe -t commands 'action' _hakurei_cmds || compadd "$@"
|
|
else
|
|
local curcontext="$curcontext"
|
|
cmd="${${_hakurei_cmds[(r)$words[1]:*]%%:*}}"
|
|
if (( $+functions[_hakurei_$cmd] )); then
|
|
_hakurei_$cmd
|
|
else
|
|
_message "no more options"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
_arguments -C \
|
|
'-v[Increase log verbosity]' \
|
|
'--json[Serialise output in JSON when applicable]' \
|
|
'*::hakurei command:_hakurei_commands' |