Skip to content

Commit 64f8e40

Browse files
committed
add update shell
1 parent 7cbc562 commit 64f8e40

File tree

2 files changed

+335
-0
lines changed

2 files changed

+335
-0
lines changed

assist.sh

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/bin/bash
2+
###
3+
# @Author: LinkLeong [email protected]
4+
# @Date: 2022-02-17 18:53:29
5+
6+
# @LastEditTime: 2022-06-30 10:11:31
7+
# @FilePath: /get/assist.sh
8+
# @Description:
9+
# @Website: https://www.casaos.io
10+
# Copyright (c) 2022 by icewhale, All Rights Reserved.
11+
###
12+
13+
version_0_2_11() {
14+
sysctl -w net.core.rmem_max=2500000
15+
}
16+
17+
version_0_2_11

upload.sh

+318
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,318 @@
1+
#!/bin/bash
2+
###
3+
# @Author: LinkLeong [email protected]
4+
# @Date: 2022-06-30 10:08:33
5+
6+
# @LastEditTime: 2022-06-30 10:11:45
7+
# @FilePath: /get/upload.sh
8+
# @Description:
9+
###
10+
11+
((EUID)) && sudo_cmd="sudo"
12+
13+
# SYSTEM INFO
14+
readonly UNAME_M="$(uname -m)"
15+
16+
# CasaOS PATHS
17+
readonly CASA_REPO=LinkLeong/casaos-alpha
18+
readonly CASA_UNZIP_TEMP_FOLDER=/tmp/casaos
19+
readonly CASA_BIN=casaos
20+
readonly CASA_BIN_PATH=/usr/bin/casaos
21+
readonly CASA_CONF_PATH=/etc/casaos.conf
22+
readonly CASA_SERVICE_PATH=/etc/systemd/system/casaos.service
23+
readonly CASA_HELPER_PATH=/usr/share/casaos/shell/
24+
readonly CASA_USER_CONF_PATH=/var/lib/casaos/conf/
25+
readonly CASA_DB_PATH=/var/lib/casaos/db/
26+
readonly CASA_TEMP_PATH=/var/lib/casaos/temp/
27+
readonly CASA_LOGS_PATH=/var/log/casaos/
28+
readonly CASA_PACKAGE_EXT=".tar.gz"
29+
readonly CASA_RELEASE_API="https://api.github.com/repos/${CASA_REPO}/releases"
30+
readonly CASA_OPENWRT_DOCS="https://github.com/IceWhaleTech/CasaOS-OpenWrt"
31+
32+
readonly COLOUR_RESET='\e[0m'
33+
readonly aCOLOUR=(
34+
'\e[38;5;154m' # green | Lines, bullets and separators
35+
'\e[1m' # Bold white | Main descriptions
36+
'\e[90m' # Grey | Credits
37+
'\e[91m' # Red | Update notifications Alert
38+
'\e[33m' # Yellow | Emphasis
39+
)
40+
41+
Target_Arch=""
42+
Target_Distro="debian"
43+
Target_OS="linux"
44+
Casa_Tag=""
45+
46+
47+
#######################################
48+
# Custom printing function
49+
# Globals:
50+
# None
51+
# Arguments:
52+
# $1 0:OK 1:FAILED 2:INFO 3:NOTICE
53+
# message
54+
# Returns:
55+
# None
56+
#######################################
57+
58+
Show() {
59+
# OK
60+
if (($1 == 0)); then
61+
echo -e "${aCOLOUR[2]}[$COLOUR_RESET${aCOLOUR[0]} OK $COLOUR_RESET${aCOLOUR[2]}]$COLOUR_RESET $2"
62+
# FAILED
63+
elif (($1 == 1)); then
64+
echo -e "${aCOLOUR[2]}[$COLOUR_RESET${aCOLOUR[3]}FAILED$COLOUR_RESET${aCOLOUR[2]}]$COLOUR_RESET $2"
65+
# INFO
66+
elif (($1 == 2)); then
67+
echo -e "${aCOLOUR[2]}[$COLOUR_RESET${aCOLOUR[0]} INFO $COLOUR_RESET${aCOLOUR[2]}]$COLOUR_RESET $2"
68+
# NOTICE
69+
elif (($1 == 3)); then
70+
echo -e "${aCOLOUR[2]}[$COLOUR_RESET${aCOLOUR[4]}NOTICE$COLOUR_RESET${aCOLOUR[2]}]$COLOUR_RESET $2"
71+
fi
72+
}
73+
74+
Warn() {
75+
echo -e "${aCOLOUR[3]}$1$COLOUR_RESET"
76+
}
77+
78+
# 0 Check_exist
79+
Check_Exist() {
80+
#Create Dir
81+
Show 2 "Create Folders."
82+
${sudo_cmd} mkdir -p ${CASA_HELPER_PATH}
83+
${sudo_cmd} mkdir -p ${CASA_LOGS_PATH}
84+
${sudo_cmd} mkdir -p ${CASA_USER_CONF_PATH}
85+
${sudo_cmd} mkdir -p ${CASA_DB_PATH}
86+
${sudo_cmd} mkdir -p ${CASA_TEMP_PATH}
87+
88+
if [[ $(systemctl is-active ${CASA_BIN}) == "active" ]]; then
89+
${sudo_cmd} systemctl stop ${CASA_BIN}
90+
${sudo_cmd} systemctl disable ${CASA_BIN}
91+
fi
92+
Show 2 "Start cleaning up the old version."
93+
if [[ -f "/usr/lib/systemd/system/casaos.service" ]]; then
94+
${sudo_cmd} rm -rf /usr/lib/systemd/system/casaos.service
95+
fi
96+
97+
if [[ -f "/lib/systemd/system/casaos.service" ]]; then
98+
${sudo_cmd} rm -rf /lib/systemd/system/casaos.service
99+
fi
100+
101+
if [[ -f "/usr/local/bin/${CASA_BIN}" ]]; then
102+
${sudo_cmd} rm -rf /usr/local/bin/${CASA_BIN}
103+
fi
104+
105+
if [[ -f "/casaOS/server/conf/conf.ini" ]]; then
106+
${sudo_cmd} cp -rf /casaOS/server/conf/conf.ini ${CASA_CONF_PATH}
107+
${sudo_cmd} cp -rf /casaOS/server/conf/*.json ${CASA_USER_CONF_PATH}
108+
fi
109+
110+
if [[ -d "/casaOS/server/db" ]]; then
111+
${sudo_cmd} cp -rf /casaOS/server/db/* ${CASA_DB_PATH}
112+
fi
113+
114+
#Clean
115+
if [[ -d "/casaOS" ]]; then
116+
${sudo_cmd} rm -rf /casaOS
117+
fi
118+
Show 0 "Clearance completed."
119+
120+
}
121+
122+
# 1 Check Arch
123+
Check_Arch() {
124+
case $UNAME_M in
125+
*aarch64*)
126+
Target_Arch="arm64"
127+
;;
128+
*64*)
129+
Target_Arch="amd64"
130+
;;
131+
*armv7*)
132+
Target_Arch="arm-7"
133+
;;
134+
*)
135+
Show 1 "Aborted, unsupported or unknown architecture: $UNAME_M"
136+
exit 1
137+
;;
138+
esac
139+
Show 0 "Your hardware architecture is : $UNAME_M"
140+
}
141+
142+
# Check Docker running
143+
Check_Docker_Running() {
144+
for ((i = 1; i <= 3; i++)); do
145+
sleep 3
146+
if [[ ! $(systemctl is-active docker &>/dev/null) ]]; then
147+
Show 1 "Docker is not running, try to start"
148+
${sudo_cmd} systemctl start docker
149+
else
150+
break
151+
fi
152+
done
153+
}
154+
155+
#Install Docker
156+
Install_Docker() {
157+
Show 0 "Docker will be installed automatically."
158+
echo -e "${aCOLOUR[2]}\c"
159+
curl -fsSL https://get.docker.com | bash
160+
echo -e "${COLOUR_RESET}\c"
161+
if [[ $? -ne 0 ]]; then
162+
Show 1 "Installation failed, please try again."
163+
exit 1
164+
else
165+
Show 0 "Docker Successfully installed."
166+
Check_Docker_Running
167+
fi
168+
}
169+
170+
#Download CasaOS Package
171+
Download_CasaOS() {
172+
Show 2 "Downloading CasaOS for ${Target_OS}/${Target_Arch}..."
173+
Net_Getter="curl -fsSLk"
174+
Casa_Package="${Target_OS}-${Target_Arch}-casaos${CASA_PACKAGE_EXT}"
175+
if [[ ! -n "$version" ]]; then
176+
Casa_Tag="$(${Net_Getter} ${CASA_RELEASE_API}/latest | grep -o '"tag_name": ".*"' | sed 's/"//g' | sed 's/tag_name: //g')"
177+
elif [[ $version == "pre" ]]; then
178+
Casa_Tag="$(${net_getter} ${CASA_RELEASE_API} | grep -o '"tag_name": ".*"' | sed 's/"//g' | sed 's/tag_name: //g' | sed -n '1p')"
179+
else
180+
Casa_Tag="$version"
181+
fi
182+
Casa_Package_URL="https://github.com/${CASA_REPO}/releases/download/${Casa_Tag}/${Casa_Package}"
183+
echo
184+
# Remove Temp File
185+
${sudo_cmd} rm -rf "$PREFIX/tmp/${Casa_Package}"
186+
# Download Package
187+
${Net_Getter} "${Casa_Package_URL}" >"$PREFIX/tmp/${Casa_Package}"
188+
if [[ $? -ne 0 ]]; then
189+
Show 1 "Download failed, Please check if your internet connection is working and retry."
190+
exit 1
191+
else
192+
Show 0 "Download successful!"
193+
fi
194+
#Extract CasaOS Package
195+
Show 2 "Extracting..."
196+
case "${Casa_Package}" in
197+
*.zip) ${sudo_cmd} unzip -o "$PREFIX/tmp/${Casa_Package}" -d "$PREFIX/tmp/" ;;
198+
*.tar.gz) ${sudo_cmd} tar -xzf "$PREFIX/tmp/${Casa_Package}" -C "$PREFIX/tmp/" ;;
199+
esac
200+
#Setting Executable Permissions
201+
${sudo_cmd} chmod +x "$PREFIX${CASA_UNZIP_TEMP_FOLDER}/${CASA_BIN}"
202+
203+
}
204+
205+
#Install Addons
206+
Install_Addons() {
207+
Show 2 "Installing CasaOS Addons"
208+
${sudo_cmd} cp -rf "$PREFIX${CASA_UNZIP_TEMP_FOLDER}/shell/11-usb-mount.rules" "/etc/udev/rules.d/"
209+
${sudo_cmd} cp -rf "$PREFIX${CASA_UNZIP_TEMP_FOLDER}/shell/[email protected]" "/etc/systemd/system/"
210+
sync
211+
}
212+
213+
#Clean Temp Files
214+
Clean_Temp_Files() {
215+
Show 0 "Clean..."
216+
${sudo_cmd} rm -rf "$PREFIX${CASA_UNZIP_TEMP_FOLDER}"
217+
sync
218+
}
219+
220+
#Install CasaOS
221+
Install_CasaOS() {
222+
Show 2 "Installing..."
223+
224+
# Install Bin
225+
${sudo_cmd} mv -f $PREFIX${CASA_UNZIP_TEMP_FOLDER}/${CASA_BIN} ${CASA_BIN_PATH}
226+
227+
# Install Helper
228+
if [[ -d ${CASA_HELPER_PATH} ]]; then
229+
${sudo_cmd} rm -rf ${CASA_HELPER_PATH}*
230+
fi
231+
${sudo_cmd} cp -rf $PREFIX${CASA_UNZIP_TEMP_FOLDER}/shell/* ${CASA_HELPER_PATH}
232+
#Setting Executable Permissions
233+
${sudo_cmd} chmod +x $PREFIX${CASA_HELPER_PATH}*
234+
235+
# Install Conf
236+
if [[ ! -f ${CASA_CONF_PATH} ]]; then
237+
if [[ -f $PREFIX${CASA_UNZIP_TEMP_FOLDER}/conf/conf.ini.sample ]]; then
238+
${sudo_cmd} mv -f $PREFIX${CASA_UNZIP_TEMP_FOLDER}/conf/conf.ini.sample ${CASA_CONF_PATH}
239+
else
240+
${sudo_cmd} mv -f $PREFIX${CASA_UNZIP_TEMP_FOLDER}/conf/conf.conf.sample ${CASA_CONF_PATH}
241+
fi
242+
243+
fi
244+
sync
245+
246+
if [[ ! -x "$(command -v ${CASA_BIN})" ]]; then
247+
Show 1 "Installation failed, please try again."
248+
exit 1
249+
else
250+
Show 0 "CasaOS Successfully installed."
251+
fi
252+
}
253+
254+
#Generate Service File
255+
Generate_Service() {
256+
if [ -f ${CASA_SERVICE_PATH} ]; then
257+
Show 2 "Try stop CasaOS system service."
258+
# Stop before generation
259+
if [[ $(systemctl is-active ${CASA_BIN} &>/dev/null) ]]; then
260+
${sudo_cmd} systemctl stop ${CASA_BIN}
261+
fi
262+
fi
263+
Show 2 "Create system service for CasaOS."
264+
265+
${sudo_cmd} tee ${CASA_SERVICE_PATH} >/dev/null <<EOF
266+
[Unit]
267+
Description=CasaOS Service
268+
StartLimitIntervalSec=0
269+
270+
[Service]
271+
Type=simple
272+
LimitNOFILE=15210
273+
Restart=always
274+
RestartSec=1
275+
User=root
276+
ExecStart=${CASA_BIN_PATH} -c ${CASA_CONF_PATH}
277+
278+
[Install]
279+
WantedBy=multi-user.target
280+
EOF
281+
Show 0 "CasaOS service Successfully created."
282+
}
283+
284+
# Start CasaOS
285+
Start_CasaOS() {
286+
Show 2 "Create a system startup service for CasaOS."
287+
$sudo_cmd systemctl daemon-reload
288+
$sudo_cmd systemctl enable ${CASA_BIN}
289+
290+
Show 2 "Start CasaOS service."
291+
$sudo_cmd systemctl start ${CASA_BIN}
292+
293+
if [[ ! $(systemctl is-active ${CASA_BIN}) == "active" ]]; then
294+
Show 1 "Failed to start, please try again."
295+
exit 1
296+
else
297+
Show 0 "Service started successfully."
298+
fi
299+
}
300+
301+
Check_Arch
302+
303+
# Step 7: Download CasaOS
304+
Check_Exist
305+
Download_CasaOS
306+
307+
# Step 8: Install Addon
308+
Install_Addons
309+
310+
# Step 9: Install CasaOS
311+
Install_CasaOS
312+
313+
# Step 10: Generate_Service
314+
Generate_Service
315+
316+
# Step 11: Start CasaOS
317+
Start_CasaOS
318+
Clean_Temp_Files

0 commit comments

Comments
 (0)