blob: 6ab440c43dd6fe218f6dbfff37946e0bda445615 (
plain) (
blame)
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
#!/bin/sh
set -e
# if doas is installed, use it instead of sudo
if [ -x "$(command -v doas)" ]; then
sudo() {
doas "$@"
}
fi
# Get current Distro
if [ -f /etc/os-release ]; then
# shellcheck source=/etc/os-release
. /etc/os-release
if [ -z "$ID_LIKE" ]; then
ID_LIKE=""
fi
else
ID=$(uname -s)
fi
UPDATED=0
set -- "$ID" "$ID_LIKE"
for i in "$@"; do
case "$i" in
# YUNO use ID_LIKE, chimera :(
alpine | chimera)
sudo apk update || return 1
sudo apk upgrade || return 1
UPDATED=1
;;
arch)
# TODO: Find a way to prefer one over the other besides hardcoding
if [ -x "$(command -v yay)" ]; then
yay -Syu || return 1
yay -Yc || return 1
elif [ -x "$(command -v paru)" ]; then
paru -Syu || return 1
paru -c || return 1
else
sudo pacman -Syu || return 1
fi
UPDATED=1
;;
Darwin)
brew update || return 1
brew upgrade -g || return 1
brew cleanup || return 1
UPDATED=1
;;
debian)
sudo apt update || return 1
sudo apt dist-upgrade || return 1
sudo apt autoremove || return 1
UPDATED=1
;;
gentoo)
sudo emaint -a sync || return 1
sudo emerge -avuDU --changed-use @world || return 1
sudo emerge -av --depclean || return 1
UPDATED=1
;;
opensuse)
sudo zypper refresh || return 1
sudo zypper update || return 1
sudo zypper clean -a || return 1
UPDATED=1
;;
*)
;;
esac
if [ "$UPDATED" -eq 1 ]; then
break
fi
done
# Update flatpaks, if flatpak is installed
if [ -x "$(command -v flatpak)" ]; then
flatpak update || return 1
UPDATED=1
fi
# Update snaps, if snap is installed
# flatpaks are better (this is not even a hot take)
if [ -x "$(command -v snap)" ]; then
sudo snap refresh || return 1
UPDATED=1
fi
if [ "$UPDATED" -eq 0 ]; then
echo "No package managers found!"
exit 1
fi
|