-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunc.sh
148 lines (120 loc) · 3.78 KB
/
func.sh
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
spinner() {
local chars="/-\|"
local spin_i=0
printf "\e[?25l"
while true; do
printf "\r \e[36m%s\e[0m" "${chars:spin_i++%${#chars}:1}"
sleep 0.1
done
}
# This function displays an informational message with a yellow color.
msg_info() {
local msg="$1"
# printf "\e[?25h"
echo -ne " ${HOLD} ${YW} ${msg} "
spinner &
SPINNER_PID=$!
}
# This function displays a success message with a green color.
msg_ok() {
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID > /dev/null; fi
printf "\e[?25h"
local msg="$1"
echo -e "${BFR} ${CM} ${GN}${msg}${CL}"
}
# This function displays a error message with a red color.
msg_error() {
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID > /dev/null; fi
printf "\e[?25h"
local msg="$1"
echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}"
}
exit-script() {
clear
echo -e "⚠ User exited script \n"
exit
}
function update_script() {
msg_info "Updating operating system: apt-get update"
sudo apt-get update &>/dev/null
msg_ok "Done - Updating operating system: apt-get update"
msg_info "Updating operating system: apt-get upgrade"
sudo apt-get -y upgrade &>/dev/null
msg_ok "Done - Updating operating system: apt-get upgrade"
}
dir=/opt/Beacon-tally
function dependencies_script() {
msg_info "Installing dependencies: git"
sudo apt install git -y &>/dev/null
# sudo apt install git -y &>/dev/null || echo "\nError: Unable to install git\n" && exit
msg_ok "Done - Installing dependencies: git"
msg_info "Installing dependencies: nodejs"
sudo apt install nodejs -y &>/dev/null
# sudo apt install nodejs -y &>/dev/null || echo "\nError: Unable to install nodejs\n" && exit
msg_ok "Done - Installing dependencies: nodejs"
msg_info "Installing dependencies: npm"
sudo apt install npm -y &>/dev/null
# sudo apt install npm -y &>/dev/null || echo "\nError: Unable to install npm\n" && exit
msg_ok "Done - Installing dependencies: npm"
msg_info "Installing dependencies: yarn"
sudo npm install --global yarn &>/dev/null
# sudo npm install --global yarn &>/dev/null || echo "\nError: Unable to install yarn\n" && exit
msg_ok "Done - Installing dependencies: yarn"
msg_info "Installing dependencies: tsx"
sudo npm install --global tsx &>/dev/null
# sudo npm install --global tsx &>/dev/null || echo "\nError: Unable to install tsx\n" && exit
msg_ok "Done - Installing dependencies: tsx"
}
function foldercreate_script() {
if [[ ! -e $dir ]]; then
sudo mkdir $dir
elif [[ -e $dir ]]; then
sudo rm -rf $dir
sudo mkdir $dir
elif [[ ! -d $dir ]]; then
msg_error "$dir already exists but is not a directory" 1>&2
exit
fi
cd $dir
}
function clonegit_script(){
msg_info "Cloning repository"
sudo git clone https://github.com/IJIJI/Beacon.git $dir &>/dev/null
msg_ok "Done - Cloning repository"
}
function yarninit_script(){
msg_info "Installing dependencies: yarn init"
cd $dir
sudo yarn install &>/dev/null
msg_ok "Done - Installing dependencies: yarn init"
}
function create_service(){
msg_info "Creating service"
file_location=/lib/systemd/system/beacon.service
cat > $file_location << EOF
[Unit]
Description=Beacon Tally
After=network-online.target
[Service]
Type=simple
Restart=always
RestartSec=3
Restart=on-failure
WorkingDirectory= /opt/Beacon-tally/
ExecStart=yarn start /opt/Beacon-tally/
[Install]
WantedBy=multi-user.target
EOF
msg_ok "Done - Creating service"
}
function enable_service(){
msg_info "Reloading daemon"
sudo systemctl daemon-reload &>/dev/null
msg_ok "Done - Reloading daemon"
msg_info "Enabeling service"
sudo systemctl enable beacon
msg_ok "Done - Enabeling service"
msg_info "Starting service"
sudo systemctl start beacon
msg_ok "Done - Starting service"
}