Add capabilities at build
This commit is contained in:
43
slop-apt
Normal file
43
slop-apt
Normal file
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
helper_dir=${SLOPTRAP_HELPER_DIR:-/run/sloptrap-helper}
|
||||
queue_dir="$helper_dir/queue"
|
||||
mkdir -p "$queue_dir"
|
||||
|
||||
if [[ ${1-} != "install" ]]; then
|
||||
printf 'usage: slop-apt install <package...>\n' >&2
|
||||
exit 2
|
||||
fi
|
||||
shift
|
||||
|
||||
if [[ $# -eq 0 ]]; then
|
||||
printf 'slop-apt: at least one package is required\n' >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
for package in "$@"; do
|
||||
if [[ ! $package =~ ^[A-Za-z0-9+.-]+$ ]]; then
|
||||
printf 'slop-apt: invalid package name %s\n' "$package" >&2
|
||||
exit 2
|
||||
fi
|
||||
done
|
||||
|
||||
request_dir=$(mktemp -d "$queue_dir/request.XXXXXX.req")
|
||||
trap 'rm -rf "$request_dir"' EXIT INT TERM HUP
|
||||
printf 'apt-install\n' >"$request_dir/op"
|
||||
printf '%s\n' "$@" >"$request_dir/packages"
|
||||
|
||||
while [[ ! -f "$request_dir/status" ]]; do
|
||||
sleep 1
|
||||
done
|
||||
|
||||
if [[ -s "$request_dir/stdout" ]]; then
|
||||
cat "$request_dir/stdout"
|
||||
fi
|
||||
if [[ -s "$request_dir/stderr" ]]; then
|
||||
cat "$request_dir/stderr" >&2
|
||||
fi
|
||||
|
||||
status=$(<"$request_dir/status")
|
||||
exit "$status"
|
||||
Reference in New Issue
Block a user