INSTALL 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/bin/sh
  2. # Colors
  3. RED='\033[0;31m'; LightBlue='\033[1;34m'; Green='\033[0;32m'
  4. # For developers
  5. AM_BRANCH="main"
  6. # Check dependencies for this script
  7. _check_dependency() {
  8. AMDEPENDENCES="chmod chown curl grep wget"
  9. for dependency in $AMDEPENDENCES; do
  10. if ! command -v "$dependency" >/dev/null 2>&1; then
  11. printf "\n %b💀 ERROR! MISSING ESSENTIAL COMMAND \033[0m: %b\n\n Install the above and try again! \n\n" "${RED}" "$dependency"
  12. exit 1
  13. fi
  14. done
  15. }
  16. _check_dependency
  17. if [ -z "${SUDO_USER:-$DOAS_USER}" ]; then
  18. echo 'Please use sudo or doas'
  19. exit 1
  20. fi
  21. # INSTALL "AM"
  22. _prepare_am_directory() {
  23. # CREATE AND ENTER THE MAIN DIRECTORY FOR "AM"
  24. mkdir -p /opt/am/modules /usr/local/bin && cd /opt/am || exit 1
  25. # CREATE THE SCRIPT NEEDED TO UNINSTALL "AM"
  26. printf '#!/bin/sh\n\nset -e\n' > /opt/am/remove
  27. printf '\n%s\n' 'if [ "$(id -u)" -ne 0 ]; then echo "Permission denied"; exit 1; fi' >> /opt/am/remove
  28. printf '%s\n' 'rm -f /usr/local/bin/am' >> /opt/am/remove
  29. printf '%s\n' 'rm -R -f /opt/am' >> /opt/am/remove
  30. chmod a+x /opt/am/remove || exit 1
  31. # DOWNLOAD AND LINK THE MAIN SCRIPT
  32. wget -q "https://raw.githubusercontent.com/ivan-hc/AM/$AM_BRANCH/APP-MANAGER"
  33. chmod a+x /opt/am/APP-MANAGER
  34. ln -s /opt/am/APP-MANAGER /usr/local/bin/am 2> /dev/null || printf "${RED}WARNING: Couldn't link am to \"/usr/local/bin/am\"!\033[0m\n"
  35. }
  36. _download_am_modules() {
  37. # DOWNLOAD MODULES
  38. cd /opt/am/modules || exit
  39. MODULES=$(curl -Ls "https://raw.githubusercontent.com/ivan-hc/AM/$AM_BRANCH/APP-MANAGER" | tr '"' '\n' | grep "[a-z]\.am$")
  40. for module_name in $MODULES; do
  41. if [ ! -f ./"$module_name" ]; then
  42. echo " ◆ Downloading $module_name..."
  43. wget -q "https://raw.githubusercontent.com/ivan-hc/AM/$AM_BRANCH/modules/$module_name"
  44. chmod a+x ./"$module_name"
  45. fi
  46. done
  47. cd ..
  48. # ENABLE NON-ROOT PERMISSIONS TO THE MAIN DIRECTORY FOR THE CURRENT USER
  49. chown -R "${SUDO_USER:-$DOAS_USER}" /opt/am 2>/dev/null
  50. }
  51. echo '--------------------------------------------------------------------------'
  52. printf " ${Green}Installing \"AM\" in /opt/am\033[0m\n"
  53. _prepare_am_directory
  54. echo '--------------------------------------------------------------------------'
  55. printf " ${Green}Installing modules\033[0m\n"
  56. _download_am_modules
  57. echo '--------------------------------------------------------------------------'
  58. printf " ${Green}\"AM\" has been successfully installed!\033[0m\n"
  59. printf " Please, run \"${LightBlue}am -h\033[0m\" to see the list of the options.\n"
  60. echo '--------------------------------------------------------------------------'