AM-SAMPLE-Unified 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. #!/bin/sh
  2. # UNIFIED TEMPLATE FOR APPIMAGE/TAR/ZIP ARCHIVES
  3. APP=SAMPLE
  4. site="REPLACETHIS"
  5. url="CHECKTHEURL"
  6. version="CHECKTHEVERSION"
  7. # CREATE THE FOLDER
  8. mkdir /opt/$APP
  9. cd /opt/$APP
  10. # ADD THE REMOVER
  11. echo '#!/bin/sh' >> /opt/$APP/remove
  12. echo "rm -R -f /usr/share/applications/AM-$APP.desktop /opt/$APP /usr/local/bin/$APP" >> /opt/$APP/remove
  13. chmod a+x /opt/$APP/remove
  14. # FUNCTIONS
  15. mkdir tmp
  16. cd ./tmp
  17. _appimage(){
  18. wget "$url" -O $APP.AppImage; cd ..; mv --backup=t ./tmp/*mage ./$APP 2> /dev/null; chmod a+x /opt/$APP/$APP
  19. }
  20. _tar(){
  21. wget "$url"; cd .. tar xf ./tmp/*tar.xz -C ./tmp/ && mv --backup=t ./tmp/*/* . 2> /dev/null
  22. }
  23. _zip(){
  24. wget "$url"; unzip ./*.zip; rm ./*.zip; cd ..; mv --backup=t ./tmp/* ./ 2> /dev/null
  25. }
  26. #_appimage
  27. #_tar
  28. #_zip
  29. rm -R -f ./version
  30. rm -R -f ./tmp
  31. echo "$version" >> ./version
  32. # LINK (be sure that it redirects to the correct binary in case of tar/zip packages)
  33. ln -s /opt/$APP/$APP /usr/local/bin/$APP
  34. # SCRIPT TO UPDATE THE PROGRAM
  35. cat >> /opt/$APP/AM-updater << 'EOF'
  36. #!/usr/bin/env bash
  37. APP=SAMPLE
  38. version0=$(cat /opt/$APP/version)
  39. version="CHECKTHEVERSION"
  40. URL="CHECKTHEURL"
  41. if [ $version = $version0 ]; then
  42. echo "Update not needed!"
  43. else
  44. notify-send "A new version of $APP is available, please wait"
  45. mkdir /opt/$APP/tmp
  46. cd /opt/$APP/tmp
  47. _appimage(){
  48. wget "$url" -O $APP.AppImage; cd ..; mv --backup=t ./tmp/*mage ./$APP 2> /dev/null; chmod a+x /opt/$APP/$APP
  49. }
  50. _tar(){
  51. wget "$url"; cd .. tar xf ./tmp/*tar.xz -C ./tmp/ && mv --backup=t ./tmp/*/* . 2> /dev/null
  52. }
  53. _zip(){
  54. wget "$url"; unzip ./*.zip; rm ./*.zip; cd ..; mv --backup=t ./tmp/* ./ 2> /dev/null
  55. }
  56. #_appimage
  57. #_tar
  58. #_zip
  59. rm ./version
  60. echo "$version" >> /opt/$APP/version
  61. rm -R -f ./tmp ./*~
  62. notify-send "$APP is updated!"
  63. fi
  64. EOF
  65. chmod a+x /opt/$APP/AM-updater
  66. # LAUNCHER
  67. app=$(echo $APP | cut -c -3)
  68. cd /opt/$APP
  69. # IF THE APP IS AN APPIMAGE, USE THIS FUNCTION
  70. _appimage_launcher(){
  71. ./$APP --appimage-extract *.desktop 1>/dev/null
  72. ./$APP --appimage-extract share/applications/*.desktop 1>/dev/null
  73. ./$APP --appimage-extract usr/share/applications/*.desktop 1>/dev/null
  74. mv squashfs-root/*.desktop ./$APP.desktop 2>/dev/null
  75. mv squashfs-root/share/applications/*.desktop ./$APP.desktop 2>/dev/null
  76. mv squashfs-root/usr/share/applications/*.desktop ./$APP.desktop 2>/dev/null
  77. if [ ! -e ./$APP.desktop ]; then
  78. rm ./$APP.desktop; ./$APP --appimage-extract usr/share/applications/*$app*.desktop
  79. mv squashfs-root/usr/share/applications/*.desktop ./$APP.desktop 2>/dev/null
  80. fi
  81. if [ ! -e ./$APP.desktop ]; then
  82. rm ./$APP.desktop; ./$APP --appimage-extract share/applications/*$app*.desktop 1>/dev/null
  83. mv squashfs-root/share/applications/*.desktop ./$APP.desktop 2>/dev/null
  84. fi
  85. rm -R -f /opt/$APP/squashfs-root
  86. }
  87. #_appimage_launcher
  88. # IF THE APP IS ANOTHER KIND OF APP, USE THIS SPACE TO DOWNLOAD OR CREATE THE LAUNCHER
  89. #wget DESKTOPFILE -O $APP.desktop 2> /dev/null
  90. # PACH THE LAUNCHER
  91. CHANGEEXEC=$(cat ./$APP.desktop | grep Exec= | tr ' ' '\n' | tr '=' '\n' | tr '/' '\n' | grep $app | head -1)
  92. sed -i "s#$CHANGEEXEC#$APP#g" ./$APP.desktop 2>/dev/null
  93. sed -i "s#AppRun#$APP#g" ./$APP.desktop 2>/dev/null
  94. sed -i "s#Exec=/bin/#Exec=#g" ./$APP.desktop 2>/dev/null
  95. sed -i "s#Exec=/usr/bin/#Exec=#g" ./$APP.desktop 2>/dev/null
  96. CHANGEICON=$(cat ./$APP.desktop | grep Icon= | head -1)
  97. sed -i "s#$CHANGEICON#Icon=/opt/$APP/icons/$APP#g" ./$APP.desktop 2>/dev/null
  98. mv ./$APP.desktop /usr/share/applications/AM-$APP.desktop 2>/dev/null
  99. # ICON
  100. mkdir icons
  101. wget https://portable-linux-apps.github.io/icons/$APP.png -O ./icons/$APP 2>/dev/null
  102. # CHANGE THE PERMISSIONS
  103. currentuser=$(who | awk '{print $1}')
  104. chown -R $currentuser /opt/$APP
  105. # MESSAGE
  106. echo "
  107. $APP is provided by $site
  108. "