summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@cryptonomic.net>2022-03-27 19:57:48 -0400
committerAndrew Cady <d@cryptonomic.net>2022-03-27 19:57:53 -0400
commit27ec0712a4bdc8e27cab768ef407ab632f4261b9 (patch)
tree4c4aa309117c27e6dfb85f6794a0d2d1461c3bac
parent88e95dad71447b03ac95514da0fd281389dc9d7b (diff)
unfinished command "slice"
WIP
-rwxr-xr-xslice47
1 files changed, 47 insertions, 0 deletions
diff --git a/slice b/slice
new file mode 100755
index 0000000..44ae13e
--- /dev/null
+++ b/slice
@@ -0,0 +1,47 @@
1#!/bin/bash
2default_percent='50'
3keep_env=(XAUTHORITY DISPLAY)
4set -e
5
6usage()
7{
8 cat <<EOF
9Usage: $0 [percentage]% [--] command [arguments...]
10
11 The [percentage] argument must end with a literal '%'.
12
13 E.g.:
14
15 slice 50% firefox
16
17 The command cannot start with a literal '-'.
18EOF
19}
20
21percent=$1
22case "$1" in
23 --) percent=$default_percent ;;
24 '' | -*) usage >&2; exit 1;;
25 *.*%) percent=${1%.*} ;;
26 *%) percent=${1%\%} ;;
27esac
28[ "$percent" -ge 0 ]
29[ "$percent" -le 100 ]
30
31shift
32case "$1" in
33 --) shift ;;
34esac
35unit_name=$1
36
37keep_env_opts=()
38for v in "${keep_env[@]}"
39do
40 keep_env_opts+=(-E "${!v}")
41done
42
43systemd-run -u "$unit_name" \
44 "${keep_env_opts[@]}"
45 "$0" "$@"
46 "$@"
47