-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup
executable file
·76 lines (69 loc) · 2.05 KB
/
setup
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/bin/sh
HERE="$(dirname "$(readlink -f "$0")")"
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
PROGRAMSDIR="${PROGRAMSDIR:-$HOME/programs}"
# shellcheck disable=2015
sudocmd="$([ -s /etc/doas.conf ] && command -v doas 2>/dev/null || command -v sudo 2>/dev/null)"
browserdir="$HOME/.mozilla/firefox"
setup_dotfiles() {
cp -srvft "$HOME" "$HERE/.config" "$HERE/.local"
ln -svf "$XDG_CONFIG_HOME/shell/profile" "$HOME/.zprofile"
$sudocmd cp -vft /etc "$XDG_CONFIG_HOME/doas/doas.conf" "$XDG_CONFIG_HOME/pacman/pacman.conf"
$sudocmd cp -rvft /etc "$HERE/.config/modprobe.d" "$XDG_CONFIG_HOME/zzz.d"
$sudocmd cp -rvft /etc/pacman.d "$HERE/.config/pacman/hooks"
$sudocmd mkdir -p /var/cache/zsh
}
setup_runit() {
doas rm -vf \
/run/runit/service/agetty-tty4 \
/run/runit/service/agetty-tty5 \
/run/runit/service/agetty-tty6
doas ln -svft /run/runit/service \
/etc/runit/sv/socklog \
/etc/runit/sv/klog \
/etc/runit/sv/dbus \
/etc/runit/sv/udevd \
/etc/runit/sv/chrony \
/etc/runit/sv/elogind \
/etc/runit/sv/dhcpcd \
/etc/runit/sv/wpa_supplicant \
/etc/runit/sv/bluetoothd \
/etc/runit/sv/cronie \
/etc/runit/sv/tlp \
/etc/runit/sv/sshd \
/etc/runit/sv/docker
}
setup_firefox() {
[ -d "$browserdir" ] ||
{
firefox --headless >/dev/null 2>&1 &
ffpid=$!
sleep 1
}
sed -n "/Default=.*\..*/s/.*=//p" "$browserdir/profiles.ini" | while IFS= read -r profile; do
cat "/usr/share/arkenfox-user.js/user.js" "$XDG_CONFIG_HOME/firefox/user.js" >"$browserdir/$profile/user.js"
done
# shellcheck disable=SC2015
[ -n "$ffpid" ] && kill "$ffpid" || true
}
clean() {
cd "$HERE" || exit 1
find .config .local -type f -exec rm -vf "$HOME/{}" \;
profile="$(sed -n "/Default=.*\..*/s/.*=//p" "$browserdir/profiles.ini")"
[ -s "$browserdir/$profile/user.js" ] && rm -vf "$browserdir/$profile/user.js"
}
case "$1" in
"" | all)
setup_dotfiles
setup_runit
setup_firefox
;;
dotfiles) setup_dotfiles ;;
runit) setup_runit ;;
firefox) setup_firefox ;;
clean) clean ;;
*)
echo "$(basename "$0"): unknown command \"$1\"" >&2
exit 1
;;
esac