aboutsummaryrefslogtreecommitdiff
path: root/.local
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
parent1c8e9b136d9d00decc1d3570fe58072427107148 (diff)
Make prettier wrapper while switching to librewolf
Diffstat (limited to '.local')
l---------[-rwxr-xr-x].local/bin/firefox48
-rw-r--r--.local/etc/wrapper.d/firefox.rc10
-rwxr-xr-x.local/share/wrapper.sh56
3 files changed, 67 insertions, 47 deletions
diff --git a/.local/bin/firefox b/.local/bin/firefox
index dde1929..3da827c 100755..120000
--- a/.local/bin/firefox
+++ b/.local/bin/firefox
@@ -1,47 +1 @@
-#!/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.
-
-readonly BINS="
- /usr/bin/firefox
- /usr/bin/firefox-bin
-"
-
-main()
-{
- require_exe "firejail"
-
- for bin in $BINS
- do
- [ -x "$bin" ] || continue
-
- exec firejail --profile="$HOME/.local/etc/firejail/firefox.profile" -- \
- "$bin" --profile "$HOME/.config/firefox" "$@"
- done
-
- printf "No underlying executable found for %s:\n" "${0##*/}" >&2
-
- for bin in $BINS
- do
- printf "\t%s\n" "$bin" >&2
- done
-}
-
-require_exe()
-{
- if ! command -v "$1" > /dev/null 2>&1
- then
- printf "Missing required executable %s\n" "$1"
- exit 3
- fi
-}
-
-main "$@"
+../share/wrapper.sh \ No newline at end of file
diff --git a/.local/etc/wrapper.d/firefox.rc b/.local/etc/wrapper.d/firefox.rc
new file mode 100644
index 0000000..fb3529b
--- /dev/null
+++ b/.local/etc/wrapper.d/firefox.rc
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+WRAPPER_BINS="
+ /usr/bin/librewolf
+ /usr/bin/librewolf-bin
+"
+
+WRAPPER_OPTS="--profile $HOME/.config/firefox"
+
+FIREJAIL_PROFILE="$HOME/.local/etc/firejail/firefox.profile"
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 "$@"