diff options
author | Patrick Spek <p.spek@tyil.nl> | 2022-02-12 16:34:56 +0100 |
---|---|---|
committer | Patrick Spek <p.spek@tyil.nl> | 2022-02-12 16:34:56 +0100 |
commit | 4d6fb85e0cdf6e327e6d49b99f84450061b695ce (patch) | |
tree | 8491cb51b5164781beff20f86e91af1ce1fda679 /.local/share | |
parent | 1c8e9b136d9d00decc1d3570fe58072427107148 (diff) |
Make prettier wrapper while switching to librewolf
Diffstat (limited to '.local/share')
-rwxr-xr-x | .local/share/wrapper.sh | 56 |
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 "$@" |