aboutsummaryrefslogtreecommitdiff
path: root/.local/share
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2022-02-12 16:34:56 +0100
committerPatrick Spek <p.spek@tyil.nl>2022-02-12 16:34:56 +0100
commit4d6fb85e0cdf6e327e6d49b99f84450061b695ce (patch)
tree8491cb51b5164781beff20f86e91af1ce1fda679 /.local/share
parent1c8e9b136d9d00decc1d3570fe58072427107148 (diff)
Make prettier wrapper while switching to librewolf
Diffstat (limited to '.local/share')
-rwxr-xr-x.local/share/wrapper.sh56
1 files changed, 56 insertions, 0 deletions
diff --git a/.local/share/wrapper.sh b/.local/share/wrapper.sh
new file mode 100755
index 0000000..7d35360
--- /dev/null
+++ b/.local/share/wrapper.sh
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+# This program is free software: you can redistribute it and/or modify it under
+# the terms of the GNU Affero General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option) any
+# later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
+# details.
+
+main()
+{
+ wrapped="${0##*/}"
+ etcfile="$HOME/.local/etc/wrapper.d/$wrapped.rc"
+
+ if [ ! -f "$etcfile" ]
+ then
+ printf "No configuration for %s found at %s\n" \
+ "$wrapped" \
+ "$etcfile" \
+ >&2
+
+ exit 3
+ fi
+
+ . "$etcfile"
+
+ if [ -z "$WRAPPER_BINS" ]
+ then
+ printf "No WRAPPER_BINS specified in %s\n" "$etcfile" >&2
+ exit 4
+ fi
+
+ for bin in $WRAPPER_BINS
+ do
+ [ -x "$bin" ] || continue
+
+ if [ -n "$FIREJAIL_PROFILE" ]
+ then
+ exec firejail --profile="$FIREJAIL_PROFILE" -- \
+ "$bin" $WRAPPER_OPTS "$@"
+ fi
+
+ exec "$bin" $WRAPPER_OPTS "$@"
+ done
+
+ printf "No underlying executable found for %s:\n" "$wrapped" >&2
+ for bin in $WRAPPER_BINS
+ do
+ printf "\t%s\n" "$bin" >&2
+ done
+}
+
+main "$@"