86box
1 #!/bin/sh 2 3 APP=86box 4 REPO="86Box/86Box" 5 6 # CREATE THE FOLDER 7 mkdir /opt/$APP 8 cd /opt/$APP 9 10 # ADD THE REMOVER 11 echo '#!/bin/sh' >> /opt/$APP/remove 12 echo "rm -R -f /usr/local/share/applications/$APP-AM.desktop /opt/$APP /usr/local/bin/$APP" >> /opt/$APP/remove 13 chmod a+x /opt/$APP/remove 14 15 # DOWNLOAD THE ARCHIVE 16 mkdir tmp 17 cd ./tmp 18 19 version=$(curl -Ls https://api.github.com/repos/$REPO/releases | grep -i arm64 | grep browser_download_url | grep -i appimage | cut -d '"' -f 4 | head -1) 20 wget $version 21 echo "$version" >> /opt/$APP/version 22 cd .. 23 mv ./tmp/*mage ./$APP 24 chmod a+x /opt/$APP/$APP 25 rmdir ./tmp 26 27 # LINK 28 ln -s /opt/$APP/$APP /usr/local/bin/$APP 29 30 # SCRIPT TO UPDATE THE PROGRAM 31 cat >> /opt/$APP/AM-updater << 'EOF' 32 #!/usr/bin/env bash 33 APP=86box 34 REPO="86Box/86Box" 35 version0=$(cat /opt/$APP/version) 36 version=$(curl -Ls https://api.github.com/repos/$REPO/releases | grep -i arm64 | grep browser_download_url | grep -i appimage | cut -d '"' -f 4 | head -1) 37 if [ $version = $version0 ]; then 38 echo "Update not needed!" 39 else 40 notify-send "A new version of $APP is available, please wait" 41 mkdir /opt/$APP/tmp 42 cd /opt/$APP/tmp 43 wget $version 44 if ls . | grep mage; then 45 cd .. 46 if test -f ./tmp/*mage; then rm ./version 47 fi 48 echo $version >> ./version 49 mv --backup=t ./tmp/*mage ./$APP 50 chmod a+x /opt/$APP/$APP 51 rm -R -f ./tmp ./*~ 52 fi 53 notify-send "$APP is updated!" 54 fi 55 EOF 56 chmod a+x /opt/$APP/AM-updater 57 58 # LAUNCHER & ICON 59 app=$(echo $APP | cut -c -3) 60 cd /opt/$APP 61 ./$APP --appimage-extract *.desktop 1>/dev/null 62 ./$APP --appimage-extract share/applications/*.desktop 1>/dev/null 63 ./$APP --appimage-extract usr/share/applications/*.desktop 1>/dev/null 64 mv squashfs-root/*.desktop ./$APP.desktop 65 mv squashfs-root/share/applications/*.desktop ./$APP.desktop 66 mv squashfs-root/usr/share/applications/*.desktop ./$APP.desktop 67 if [ ! -e ./$APP.desktop ]; then 68 rm ./$APP.desktop; ./$APP --appimage-extract usr/share/applications/*$app*.desktop 69 mv squashfs-root/usr/share/applications/*.desktop ./$APP.desktop 70 fi 71 if [ ! -e ./$APP.desktop ]; then 72 rm ./$APP.desktop; ./$APP --appimage-extract share/applications/*$app*.desktop 1>/dev/null 73 mv squashfs-root/share/applications/*.desktop ./$APP.desktop 74 fi 75 CHANGEEXEC=$(cat ./$APP.desktop | grep Exec= | tr ' ' '\n' | tr '=' '\n' | tr '/' '\n' | grep $app | head -1) 76 sed -i "s#$CHANGEEXEC#$APP#g" ./$APP.desktop 77 sed -i "s#AppRun#$APP#g" ./$APP.desktop 78 sed -i "s#Exec=/bin/#Exec=#g" ./$APP.desktop 79 sed -i "s#Exec=/usr/bin/#Exec=#g" ./$APP.desktop 80 CHANGEICON=$(cat ./$APP.desktop | grep Icon= | head -1) 81 sed -i "s#$CHANGEICON#Icon=/opt/$APP/icons/$APP#g" ./$APP.desktop 82 83 mkdir icons 84 ./$APP --appimage-extract *.png 2>&1 | grep -v "squashfs-root"; mv ./squashfs-root/*$app* ./icons/$APP 2>/dev/null 85 ./$APP --appimage-extract *.svg 2>&1 | grep -v "squashfs-root"; mv ./squashfs-root/*$app* ./icons/$APP 2>/dev/null 86 ./$APP --appimage-extract share/icons/*/*/* 1>/dev/null 87 ./$APP --appimage-extract usr/share/icons/*/*/* 1>/dev/null 88 ./$APP --appimage-extract share/icons/*/*/*/* 1>/dev/null 89 ./$APP --appimage-extract usr/share/icons/*/*/*/* 1>/dev/null 90 mv ./squashfs-root/share/icons/hicolor/22x22/apps/*$app* ./icons/$APP 2>/dev/null 91 mv ./squashfs-root/share/icons/hicolor/24x24/apps/*$app* ./icons/$APP 2>/dev/null 92 mv ./squashfs-root/share/icons/hicolor/32x32/apps/*$app* ./icons/$APP 2>/dev/null 93 mv ./squashfs-root/share/icons/hicolor/48x48/apps/*$app* ./icons/$APP 2>/dev/null 94 mv ./squashfs-root/share/icons/hicolor/64x64/apps/*$app* ./icons/$APP 2>/dev/null 95 mv ./squashfs-root/share/icons/hicolor/128x128/apps/*$app* ./icons/$APP 2>/dev/null 96 mv ./squashfs-root/share/icons/hicolor/256x256/apps/*$app* ./icons/$APP 2>/dev/null 97 mv ./squashfs-root/share/icons/hicolor/512x512/apps/*$app* ./icons/$APP 2>/dev/null 98 mv ./squashfs-root/share/icons/hicolor/scalable/apps/*$app* ./icons/$APP 2>/dev/null 99 mv ./squashfs-root/usr/share/icons/hicolor/22x22/apps/*$app* ./icons/$APP 2>/dev/null 100 mv ./squashfs-root/usr/share/icons/hicolor/24x24/apps/*$app* ./icons/$APP 2>/dev/null 101 mv ./squashfs-root/usr/share/icons/hicolor/32x32/apps/*$app* ./icons/$APP 2>/dev/null 102 mv ./squashfs-root/usr/share/icons/hicolor/48x48/apps/*$app* ./icons/$APP 2>/dev/null 103 mv ./squashfs-root/usr/share/icons/hicolor/64x64/apps/*$app* ./icons/$APP 2>/dev/null 104 mv ./squashfs-root/usr/share/icons/hicolor/128x128/apps/*$app* ./icons/$APP 2>/dev/null 105 mv ./squashfs-root/usr/share/icons/hicolor/256x256/apps/*$app* ./icons/$APP 2>/dev/null 106 mv ./squashfs-root/usr/share/icons/hicolor/512x512/apps/*$app* ./icons/$APP 2>/dev/null 107 mv ./squashfs-root/usr/share/icons/hicolor/scalable/apps/*$app* ./icons/$APP 2>/dev/null 108 109 rm -R -f /opt/$APP/squashfs-root 110 mv ./$APP.desktop /usr/local/share/applications/$APP-AM.desktop