@@ -14,100 +14,78 @@ currentuser=$(who | awk '{print $1}')
1414
1515_check_dependency() {
1616 program="$1"
17- _away_all command -v "$program" && return 0 || echo " For Installation to work, install \"$program\" first!" && exit 1
17+ _away_all command -v "$program" && return 0 || printf "${RED}WARNING: For Installation to work, install \"$program\" first!\033[0m\n " && exit 1
1818}
1919
2020_check_dependency 'wget'
2121_check_dependency 'curl'
2222
23- # CREATING THE MAIN DIRECTORY FOR "AM"
24- mkdir -p /opt/am/.cache /opt/am/modules || exit 1
25- cd /opt/am || exit 1
23+ # Colors
24+ RED='\033[0;31m'; LightBlue='\033[1;34m'; Green='\033[0;32m'
2625
27- # CREATE THE SCRIPT NEEDED TO UNINSTALL "AM"
28- printf '#!/bin/sh\n\nset -e\n' > /opt/am/remove
29- printf '\n%s\n' 'if [ "$(id -u)" -ne 0 ]; then echo "Permission denied"; exit 1; fi' >> /opt/am/remove
30- printf '%s\n' 'rm -f /usr/local/bin/am /etc/bash_completion.d/am-completion.sh' >> /opt/am/remove
31- printf '%s\n' 'rm -R -f /opt/am' >> /opt/am/remove
32- chmod a+x /opt/am/remove || exit 1
26+ # INSTALL "AM"
27+ _prepare_am_directory() {
28+ # CREATE AND ENTER THE MAIN DIRECTORY FOR "AM"
29+ mkdir -p /opt/am/.cache /opt/am/modules /usr/local/bin && cd /opt/am || exit 1
3330
34- # DOWNLOAD THE MAIN SCRIPT
35- wget -q https://raw.githubusercontent.com/ivan-hc/AM/main/APP-MANAGER
36- chmod a+x /opt/am/APP-MANAGER || exit 1
31+ # CREATE THE SCRIPT NEEDED TO UNINSTALL "AM"
32+ printf '#!/bin/sh\n\nset -e\n' > /opt/am/remove
33+ printf '\n%s\n' 'if [ "$(id -u)" -ne 0 ]; then echo "Permission denied"; exit 1; fi' >> /opt/am/remove
34+ printf '%s\n' 'rm -f /usr/local/bin/am /etc/bash_completion.d/am-completion.sh' >> /opt/am/remove
35+ printf '%s\n' 'rm -R -f /opt/am' >> /opt/am/remove
36+ chmod a+x /opt/am/remove || exit 1
3737
38- # LINK THE MAIN SCRIPT TO A KNOWN PATH
39- ln -s /opt/am/APP-MANAGER /usr/local/bin/am || echo "WARNING: Something went wrong!"
38+ # DOWNLOAD AND LINK THE MAIN SCRIPT
39+ wget -q https://raw.githubusercontent.com/ivan-hc/AM/main/APP-MANAGER
40+ chmod a+x /opt/am/APP-MANAGER
41+ 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"
4042
41- # DOWNLOAD THE LIST OF THE AVAILABLE PROGRAMS
42- wget -q "https://raw.githubusercontent.com/ivan-hc/AM/main/programs/$arch-apps" || exit 1
43+ # DOWNLOAD THE LIST OF THE AVAILABLE PROGRAMS
44+ wget -q "https://raw.githubusercontent.com/ivan-hc/AM/main/programs/$arch-apps" || exit 1
45+ }
4346
44- # DOWNLOAD MODULES
45- MODULES=$(curl -Ls https://api.github.com/repos/ivan-hc/AM/contents/modules | sed 's/[()",{}]/ /g; s/ /\n/g' | grep -o 'https.*raw.*modules.*am$' | grep -v "sync\|update")
46- for module in $MODULES; do
47- for v in $module; do
48- cd /opt/am/modules || exit
49- mkdir -p tmp
50- cd tmp || exit
51- wget -q "$v"
52- cd ..
53- mv tmp/*.am ./
54- chmod a+x ./*.am
55- rmdir tmp
47+ _download_am_modules() {
48+ # DOWNLOAD MODULES
49+ cd /opt/am/modules || exit
50+ MODULES=$(curl -Ls https://api.github.com/repos/ivan-hc/AM/contents/modules | sed 's/[()",{}]/ /g; s/ /\n/g' | grep -o 'https.*raw.*modules.*am$' | grep -v "sync\|update")
51+ for v in $MODULES; do
52+ MODULENAME=$(echo "$v" | sed 's:.*/::')
53+ if ! test -f ./"$MODULENAME"; then
54+ echo " ◆ Downloading $MODULENAME..."
55+ wget -q "$v"
56+ chmod a+x ./"$MODULENAME"
57+ fi
5658 done
57- done
58-
59- # ENABLE NON-ROOT PERMISSIONS TO THE MAIN DIRECTORY FOR THE CURRENT USER
60- chown -R $currentuser /opt/am 2> /dev/null
61-
62- # ADD THE BASH COMPLETION SCRIPT
63- echo '#!/usr/bin/env bash
64- complete -W "$(cat /opt/am/list 2>/dev/null)" am' >> /opt/am/am-completion.sh
65- chmod a+x /opt/am/am-completion.sh
66-
67- if test -f /etc/bash_completion.d; then
68- mv /opt/am/am-completion.sh /etc/bash_completion.d/
69- else
70- mkdir -p /etc/bash_completion.d
71- sudo mv /opt/am/am-completion.sh /etc/bash_completion.d/
72- fi
73-
74- # SHOW THE MESSAGE
75- echo '
76- _____ _____
77- /\ \ /\ \ A A
78- /::\ \ /::\____\ P M
79- /::::\ \ /::::| | P
80- /::::::\ \ /:::::| | M &
81- /:::/\:::\ \ /::::::| | A
82- /:::/__\:::\ \ /:::/|::| | N
83- /::::\ \:::\ \ /:::/ |::| |
84- /::::::\ \:::\ \ /:::/ |::|___|______
85- /:::/\:::\ \:::\ \ /:::/ |::::::::\ \
86- /:::/ \:::\ \:::\____\/:::/ |:::::::::\____\
87- \::/ \:::\ /:::/ /\::/ / ~~~~~/:::/ /
88- \/____/ \:::\/:::/ / \/____/ /:::/ /
89- \::::::/ / /:::/ /
90- \::::/ / /:::/ /
91- /:::/ / /:::/ /╔═╗╔╗╔┌─┐┌─┐┌─┐┬─┐
92- /:::/ / /:::/ / ╠═╣║║║├─┤│ ┬├┤ ├┬┘
93- /:::/ / /:::/ / ╩ ╩╝╚╝┴ ┴└─┘└─┘┴└─
94- /:::/ /╔═╗╔═╗┬ ┬┌─┐┌─┐┌┬┐┬┌─┐┌┐┌
95- \::/ / ╠═╝╠═╝│ ││ ├─┤ │ ││ ││││
96- \/____/ ╩ ╩ ┴─┘┴└─┘┴ ┴ ┴ ┴└─┘┘└┘ by Ivan Alex HC
97-
98- >> 𝘋𝘢𝘵𝘢𝘣𝘢𝘴𝘦 & 𝘴𝘰𝘭𝘶𝘵𝘪𝘰𝘯𝘴 𝘧𝘰𝘳 𝘢𝘭𝘭 𝘈𝘱𝘱𝘐𝘮𝘢𝘨𝘦𝘴 𝘢𝘯𝘥 𝘱𝘰𝘳𝘵𝘢𝘣𝘭𝘦 𝘢𝘱𝘱𝘴 𝘧𝘰𝘳 𝘎𝘕𝘜/𝘓𝘪𝘯𝘶𝘹 <<
59+ cd ..
9960
100- ##########################################################################
101- __________________________________________________________________________
102-
103- SITE: https://portable-linux-apps.github.io
104-
105- REPOSITORY: https://github.com/ivan-hc/AM
106- __________________________________________________________________________
107-
108- ##########################################################################
61+ # ENABLE NON-ROOT PERMISSIONS TO THE MAIN DIRECTORY FOR THE CURRENT USER
62+ chown -R $currentuser /opt/am 2> /dev/null
63+ }
10964
110- Run "am -h" to see the list of the options
111- ##########################################################################
112- '
65+ _enable_bash_completion() {
66+ # ADD THE BASH COMPLETION SCRIPT
67+ echo '#!/usr/bin/env bash' > /opt/am/am-completion.sh
68+ echo 'complete -W "$(cat /opt/am/list 2>/dev/null)" am' >> /opt/am/am-completion.sh
69+ chmod a+x /opt/am/am-completion.sh
70+
71+ if test -f /etc/bash_completion.d; then
72+ mv /opt/am/am-completion.sh /etc/bash_completion.d/
73+ else
74+ mkdir -p /etc/bash_completion.d
75+ sudo mv /opt/am/am-completion.sh /etc/bash_completion.d/
76+ fi
77+ }
11378
79+ echo '--------------------------------------------------------------------------'
80+ printf " ${Green}Installing \"AM\" in /opt/am\033[0m\n"
81+ _prepare_am_directory
82+ echo '--------------------------------------------------------------------------'
83+ printf " ${Green}Installing modules\033[0m\n"
84+ _download_am_modules
85+ echo '--------------------------------------------------------------------------'
86+ printf " ${Green}Enable bash completion\033[0m\n"
87+ _enable_bash_completion
88+ echo '--------------------------------------------------------------------------'
89+ printf " ${Green}\"AM\" has been successfully installed!\033[0m\n"
90+ printf " Please, run \"${LightBlue}am -h\033[0m\" to see the list of the options.\n"
91+ echo '--------------------------------------------------------------------------'
0 commit comments