-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
109 lines (93 loc) · 1.98 KB
/
index.html
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
98
99
100
101
102
103
104
105
106
107
108
109
#!/bin/sh
set -ex
SUDO="$(command -v sudo || true) "
CONTAINER=$(grep -q docker /proc/self/cgroup 2> /dev/null && echo "true" || true)
SED=$(which sed)
setup() {
for PKG in "$@"
do
if grep -E " $PKG$" "$INSTALL_LOGS/installed"
then
printf "\033[94mSkipping %s - already installed\033[0m\n" "$PKG"
else
get "$INSTALLER/$PKG" "$SCRIPTS/$PKG" || get "common/$PKG" "$SCRIPTS/$PKG"
if [ ! -f "$SCRIPTS/$PKG" ]
then
echo "❌ Package not available: ${PKG}"
exit 1
fi
. "$SCRIPTS/$PKG" 2>&1 | tee -a "$INSTALL_LOGS/log"
echo "$(date -u +'%Y-%m-%dT%H:%M:%SZ') $PKG" >> "$INSTALL_LOGS/installed"
fi
done
}
install() {
# TODO: check if each pkg is available and build list of pending installs
case $INSTALLER in
apt)
sudo apt install -y $@
;;
dnf)
sudo dnf install -y $@
;;
pacman)
sudo pacman -S --needed --noconfirm $@
;;
brew)
brew install $@
;;
esac
}
get() {
curl -sfS "https://raw.githubusercontent.com/Funk66/installer/master/$1" -o "$2" --create-dirs 2> /dev/null
}
available() {
command -v "$1" > /dev/null 2>&1
}
mac() {
[ $(uname) = "Darwin" ]
}
sed() {
if mac
then $SED -i '' $@
else $SED -i $@
fi
}
sudo() {
${SUDO}$@
}
brew() {
BREW=/opt/homebrew/bin/brew
if [ ! -e $BREW ]
then
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$BREW update
$BREW upgrade
fi
$BREW $@
}
bwget() {
[ -z "$BW_SESSION" ] && export BW_SESSION=$(bw unlock --raw)
bw get item "$1" | jq -r ".notes"
}
if mac
then INSTALLER=brew
else
for INSTALLER in apt dnf pacman
do
available $INSTALLER && break
done
fi
if [ -z $INSTALLER ]
then
echo "❌ Unable to recognize OS"
exit 1
fi
SCRIPTS=$(mktemp -d)
INSTALL_LOGS=~/.local/funk66
mkdir -p $INSTALL_LOGS
touch $INSTALL_LOGS/installed
[ -f "$INSTALL_LOGS/log" ] && rm "$INSTALL_LOGS/log"
setup "$@"
rm -r "$SCRIPTS"
echo "✅ Done"