-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpost-install
More file actions
executable file
·77 lines (68 loc) · 2.8 KB
/
Copy pathpost-install
File metadata and controls
executable file
·77 lines (68 loc) · 2.8 KB
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
77
#! /bin/bash
[ $EUID != 0 ] && echo "error: must be root" 1>&2 && exit 1
set -ex
D=$(dirname $0)
# set root passwd to user passwd
sudo sed -i "s|^root:[^:]*:|root:$(sudo grep "$USER" /etc/shadow | cut -d: -f2):|" /etc/shadow
aptkeys=(
"https://updates.signal.org/desktop/apt/keys.asc|signal-desktop-keyring.gpg"
"https://packages.microsoft.com/keys/microsoft.asc|microsoft-teams-keyring.gpg"
"https://www.pgadmin.org/static/packages_pgadmin_org.pub|packages-pgadmin-org.gpg"
"https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key|nodesource.gpg"
)
echo ${aptkeys[*]}
for i in ${aptkeys[*]}; do
url="${i%|*}"
key="/etc/apt/trusted.gpg.d/${i#*|}"
[ -f $key ] || wget -O- $url | gpg --dearmor > $key
done
NODEJS_VER=20
for ppa in \
ppa:phoerious/keepassxc \
ppa:kicad/kicad-7.0-releases \
ppa:freecad-maintainers/freecad-stable \
'deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main' \
'deb [arch=amd64] https://packages.microsoft.com/repos/ms-teams stable main' \
'deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/jammy pgadmin4 main' \
"deb https://deb.nodesource.com/node_$NODEJS_VER.x nodistro main" \
; do
add-apt-repository --yes --no-update $ppa
done
if [ -d /var/cache/snapd ]; then
snaps="$(snap list | grep -v -e Name -e 'core$' | cut -d' ' -f1 | tac)"
for i in $snaps; do
snap remove --purge $i
done
rm -rf /var/cache/snapd/
fi
# pre-accept licenses
echo virtualbox-ext-pack virtualbox-ext-pack/license select true | debconf-set-selections
# APT upgrade/install/remove
apt-get remove -y --purge $(grep '^-' "$D/manifest" | sed 's/^.//')
apt-get autoremove -y
apt-get update
apt-get upgrade -y
apt-get install -y $(grep '^+' "$D/manifest" | sed 's/^.//')
apt-get autoremove -y
debs=(
'https://discord.com/api/download?platform=linux&format=deb|discord'
'https://zoom.us/client/latest/zoom_amd64.deb|zoom'
'https://github.com/unlimitedbacon/stl-thumb/releases/download/v0.4.0/stl-thumb_0.4.0_amd64.deb|stl-thumb'
)
for i in ${debs[*]}; do
url="${i%|*}"
bin="${i#*|}"
[[ "x$(which $bin)" != "x" ]] && continue
wget -O /tmp/$bin.deb $url
apt-get install -y /tmp/$bin.deb
rm -f /tmp/$bin.deb
done
# clean up dead directories
rm -rf /var/lib/command-not-found
rm -rf /home/*/snap
sed -i "s|^Icon=|Icon=/var/lib/AccountsService/icons/boyle|" "/var/lib/AccountsService/users/boyle"
[ -f "/tmp/boyle.jpg" ] || wget -O "/tmp/boyle.jpg" https://aboyle.ca/photo.jpg
[ -f "/tmp/boyle-crop.jpg" ] || convert "/tmp/boyle.jpg" -crop 110x110+18+18 -adaptive-resize 512x512 "/tmp/boyle-crop.jpg"
install -m 755 -o root -g root "/tmp/boyle-crop.jpg" "/var/lib/AccountsService/icons/boyle"
install -m 500 -o root -g root "$(dirname $0)/rules" /etc/iptables/rules.v4
iptables-restore < /etc/iptables/rules.v4