/
suyu
134 lines (118 loc) · 5.05 KB
/
suyu
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/bin/sh
APP=suyu
SITE="https://git.suyu.dev/suyu/suyu"
# CREATE THE FOLDER
mkdir /opt/$APP
cd /opt/$APP
# ADD THE REMOVER
echo '#!/bin/sh' >> /opt/$APP/remove
echo "rm -R -f /usr/share/applications/AM-$APP.desktop /opt/$APP /usr/local/bin/$APP" >> /opt/$APP/remove
chmod a+x /opt/$APP/remove
# DOWNLOAD THE ARCHIVE
mkdir tmp
cd ./tmp
version=$(curl -Ls https://git.suyu.dev/suyu/suyu/releases | grep -i appimage | grep -Po '(?<=href=")[^"]*' | head -1)
wget $version
wget $version.zsync 2> /dev/null
echo "$version" >> /opt/$APP/version
cd ..
mv ./tmp/*mage ./$APP
mv ./tmp/*.zsync ./$APP.zsync 2> /dev/null
chmod a+x /opt/$APP/$APP
rm -R -f ./tmp
# LINK
ln -s /opt/$APP/$APP /usr/local/bin/$APP
# SCRIPT TO UPDATE THE PROGRAM
cat >> /opt/$APP/AM-updater << 'EOF'
#!/usr/bin/env bash
APP=suyu
SITE="https://git.suyu.dev/suyu/suyu"
version0=$(cat /opt/$APP/version)
version=$(curl -Ls https://git.suyu.dev/suyu/suyu/releases | grep -i appimage | grep -Po '(?<=href=")[^"]*' | head -1)
if test -f /opt/$APP/*.zsync; then
mkdir /opt/$APP/tmp
cd /opt/$APP/tmp
wget $version.zsync 2> /dev/null
cd ..
mv ./tmp/*.zsync ./$APP.zsync
rm -R -f ./tmp
zsync /opt/$APP/$APP.zsync
rm -R -f /opt/$APP/*zs-old /opt/$APP/*.part
chmod a+x /opt/$APP/$APP
if [ "$version" != "$version0" ]; then
rm -f /opt/$APP/version
echo "$version" >> /opt/$APP/version
fi
else
if [ $version = $version0 ]; then
echo "Update not needed!"
else
notify-send "A new version of $APP is available, please wait"
mkdir /opt/$APP/tmp
cd /opt/$APP/tmp
wget $version
if ls . | grep mage; then
cd ..
if test -f ./tmp/*mage; then rm ./version
fi
echo $version >> ./version
mv --backup=t ./tmp/* ./$APP
chmod a+x /opt/$APP/$APP
rm -R -f ./tmp ./*~
fi
notify-send "$APP is updated!"
fi
fi
EOF
chmod a+x /opt/$APP/AM-updater
# LAUNCHER & ICON
app=$(echo $APP | cut -c -3)
cd /opt/$APP
./$APP --appimage-extract *.desktop 1>/dev/null
./$APP --appimage-extract share/applications/*.desktop 1>/dev/null
./$APP --appimage-extract usr/share/applications/*.desktop 1>/dev/null
mv squashfs-root/*.desktop ./$APP.desktop
mv squashfs-root/share/applications/*.desktop ./$APP.desktop
mv squashfs-root/usr/share/applications/*.desktop ./$APP.desktop
if [ ! -e ./$APP.desktop ]; then
rm ./$APP.desktop; ./$APP --appimage-extract usr/share/applications/*$app*.desktop
mv squashfs-root/usr/share/applications/*.desktop ./$APP.desktop
fi
if [ ! -e ./$APP.desktop ]; then
rm ./$APP.desktop; ./$APP --appimage-extract share/applications/*$app*.desktop 1>/dev/null
mv squashfs-root/share/applications/*.desktop ./$APP.desktop
fi
CHANGEEXEC=$(cat ./$APP.desktop | grep Exec= | tr ' ' '\n' | tr '=' '\n' | tr '/' '\n' | grep $app | head -1)
sed -i "s#$CHANGEEXEC#$APP#g" ./$APP.desktop
sed -i "s#AppRun#$APP#g" ./$APP.desktop
sed -i "s#Exec=/bin/#Exec=#g" ./$APP.desktop
sed -i "s#Exec=/usr/bin/#Exec=#g" ./$APP.desktop
CHANGEICON=$(cat ./$APP.desktop | grep Icon= | head -1)
sed -i "s#$CHANGEICON#Icon=/opt/$APP/icons/$APP#g" ./$APP.desktop
mkdir icons
./$APP --appimage-extract *.png 2>&1 | grep -v "squashfs-root"; mv ./squashfs-root/*$app* ./icons/$APP 2>/dev/null
./$APP --appimage-extract *.svg 2>&1 | grep -v "squashfs-root"; mv ./squashfs-root/*$app* ./icons/$APP 2>/dev/null
./$APP --appimage-extract share/icons/*/*/* 1>/dev/null
./$APP --appimage-extract usr/share/icons/*/*/* 1>/dev/null
./$APP --appimage-extract share/icons/*/*/*/* 1>/dev/null
./$APP --appimage-extract usr/share/icons/*/*/*/* 1>/dev/null
mv ./squashfs-root/share/icons/hicolor/22x22/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/share/icons/hicolor/24x24/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/share/icons/hicolor/32x32/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/share/icons/hicolor/48x48/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/share/icons/hicolor/64x64/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/share/icons/hicolor/128x128/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/share/icons/hicolor/256x256/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/share/icons/hicolor/512x512/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/share/icons/hicolor/scalable/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/usr/share/icons/hicolor/22x22/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/usr/share/icons/hicolor/24x24/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/usr/share/icons/hicolor/32x32/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/usr/share/icons/hicolor/48x48/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/usr/share/icons/hicolor/64x64/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/usr/share/icons/hicolor/128x128/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/usr/share/icons/hicolor/256x256/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/usr/share/icons/hicolor/512x512/apps/*$app* ./icons/$APP 2>/dev/null
mv ./squashfs-root/usr/share/icons/hicolor/scalable/apps/*$app* ./icons/$APP 2>/dev/null
rm -R -f /opt/$APP/squashfs-root
mv ./$APP.desktop /usr/share/applications/AM-$APP.desktop