-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathsetup-on-gnu-linux.sh
executable file
·125 lines (97 loc) · 2.95 KB
/
setup-on-gnu-linux.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
#!/bin/sh
#--------------------------- 说明 -----------------------------#
# 在Ubuntu和CentOS上安装禅道
#
# 禅道的一键安装包下载地址:http://www.zentao.net/download.html
# 参考:http://www.zentao.net/book/zentaopmshelp/90.html
#------------------下面的变量可以根据需要修改------------------#
# 您要安装的版本,只需要修改此处即可
VERSION=11.5.1
# Apache的端口,可以修改成你自己想要的
APACHE_PORT=8080
# MySQL的端口,可以修改成你自己想要的
MYSQL_PORT=3306
#--------------------------------------------------------------#
[ "$(whoami)" = "root" ] || sudo=sudo
Color_Purple='\033[0;35m' # Purple
Color_Off='\033[0m' # Reset
msg() {
printf "%b\n" "$1"
}
info() {
msg "${Color_Purple}[❉]${Color_Off} $1$2"
}
checkDependencies() {
info "checkDependencies..."
command -v curl > /dev/null || pkgNames="curl"
command -v tar > /dev/null || pkgNames="$pkgNames tar"
command -v gzip > /dev/null || pkgNames="$pkgNames gzip"
command -v grep > /dev/null || pkgNames="$pkgNames grep"
command -v ps > /dev/null || pkgNames="$pkgNames procps procps-ng"
}
installDependencies() {
info "installDependencies $pkgNames"
command -v apt-get > /dev/null && {
$sudo apt-get -y update &&
$sudo apt-get -y install $@
return $?
}
command -v dnf > /dev/null && {
$sudo dnf -y update &&
$sudo dnf -y install $@
return $?
}
command -v yum > /dev/null && {
$sudo yum -y update &&
$sudo yum -y install $@
return $?
}
command -v zypper > /dev/null && {
$sudo zypper update -y &&
$sudo zypper install -y $@
return $?
}
command -v pacman > /dev/null && {
$sudo pacman -Syyuu --noconfirm &&
$sudo pacman -S --noconfirm $@
return $?
}
command -v apk > /dev/null && {
$sudo apk update &&
$sudo apk add $@
return $?
}
}
downloadExtractStart() {
# 32位还是64位
if [ "$(uname -m)" = "x86_64" ] ; then
x=64
else
x=32
fi
fileName=ZenTaoPMS.${VERSION}.zbox_${x}.tar.gz
url=http://dl.cnezsoft.com/zentao/${VERSION}/${fileName}
cd "$HOME" || exit
[ -f "${fileName}" ] && tar -tf ${fileName} > /dev/null 2>&1 && {
extractAndStartService "$fileName"
exit $?
}
curl -C - -LO ${url} && extractAndStartService "$fileName"
}
extractAndStartService() {
$sudo tar zvxf "$1" -C /opt &&
$sudo /opt/zbox/zbox start -ap ${APACHE_PORT} -mp ${MYSQL_PORT}
}
main() {
[ "$(uname -s)" = "Darwin" ] && {
info "ZenTaoPMS not support macOS!"
exit 1
}
[ -f "/opt/zbox/zbox" ] && {
info "ZenTaoPMS already installed! Location:/opt/zbox/"
exit 0
}
checkDependencies
([ -z "$pkgNames" ] || installDependencies "$pkgNames") && downloadExtractStart
}
main