|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+#!/bin/sh
|
|
|
2
|
+
|
|
|
3
|
+PACKAGE_NAME="$SYNOPKG_PKGNAME"
|
|
|
4
|
+PACKAGE_BASE="/var/packages/${PACKAGE_NAME}/target"
|
|
|
5
|
+PACKAGE_SSS="/var/packages/${PACKAGE_NAME}/scripts/start-stop-status"
|
|
|
6
|
+
|
|
|
7
|
+SERVICETOOL="/usr/syno/bin/servicetool"
|
|
|
8
|
+GETKEYVALUE="/usr/syno/bin/synogetkeyvalue"
|
|
|
9
|
+SETKEYVALUE="/usr/syno/bin/synosetkeyvalue"
|
|
|
10
|
+FWFILENAME="RustDesk_Server.sc"
|
|
|
11
|
+
|
|
|
12
|
+[ "${hbbr_port}" == "" ] && hbbr_port="21117"
|
|
|
13
|
+[ "${hbbs_port}" == "" ] && hbbs_port="21116"
|
|
|
14
|
+nat_port=`expr ${hbbs_port} - 1`
|
|
|
15
|
+
|
|
|
16
|
+preinst() {
|
|
|
17
|
+ exit 0
|
|
|
18
|
+}
|
|
|
19
|
+
|
|
|
20
|
+postinst() {
|
|
|
21
|
+ if [ "${SYNOPKG_PKG_STATUS}" == "INSTALL" ]; then
|
|
|
22
|
+ # 导入另一个RustDesk服务器数据
|
|
|
23
|
+ import_db="false"
|
|
|
24
|
+ import_all="false"
|
|
|
25
|
+ if [ "${rds_old_import_all}" == "true" ]; then
|
|
|
26
|
+ rds_old_import_db="true"
|
|
|
27
|
+ import_all="true"
|
|
|
28
|
+ elif [ "${rds_import_all}" == "true" ]; then
|
|
|
29
|
+ rds_import_db="true"
|
|
|
30
|
+ import_all="true"
|
|
|
31
|
+ fi
|
|
|
32
|
+ if [ "${rds_old_import_db}" == "true" ]; then
|
|
|
33
|
+ import_db="true"
|
|
|
34
|
+ PACKAGE_IMPORT_DIR="/var/packages/RustDesk_Server"
|
|
|
35
|
+ elif [ "${rds_import_db}" == "true" ]; then
|
|
|
36
|
+ import_db="true"
|
|
|
37
|
+ PACKAGE_IMPORT_DIR="/var/packages/RustDesk Server"
|
|
|
38
|
+ fi
|
|
|
39
|
+ if [ "${import_db}" == "true" ]; then
|
|
|
40
|
+ [ -x "${PACKAGE_IMPORT_DIR}/scripts/start-stop-status" ] \
|
|
|
41
|
+ && SYNOPKG_PKGNAME="RustDesk Server" "${PACKAGE_IMPORT_DIR}/scripts/start-stop-status" stop 2>&1
|
|
|
42
|
+ [ -f "${PACKAGE_IMPORT_DIR}/enabled" ] && rm -f "${PACKAGE_IMPORT_DIR}/enabled"
|
|
|
43
|
+ [ -d "${PACKAGE_IMPORT_DIR}/target/hbbs.db" ] && cp -prf "${PACKAGE_IMPORT_DIR}/target/hbbs.db" "${PACKAGE_BASE}"
|
|
|
44
|
+ fi
|
|
|
45
|
+ if [ "${import_all}" == "true" ]; then
|
|
|
46
|
+ [ -d "${PACKAGE_IMPORT_DIR}/target/logs" ] && cp -prf "${PACKAGE_IMPORT_DIR}/target/logs" "${PACKAGE_BASE}"
|
|
|
47
|
+ fi
|
|
|
48
|
+
|
|
|
49
|
+ # 添加应用配置
|
|
|
50
|
+ sed -i "s/中继端口:21117/中继端口:${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/INFO"
|
|
|
51
|
+ sed -i "s/ID\/注册端口:21116/ID\/注册端口:${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/INFO"
|
|
|
52
|
+ sed -i "s/NAT测试端口:21115/NAT测试端口:${nat_port}/" "/var/packages/${PACKAGE_NAME}/INFO"
|
|
|
53
|
+ sed -i "s/21117/${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}"
|
|
|
54
|
+ sed -i "s/21116/${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}"
|
|
|
55
|
+ sed -i "s/21115/${nat_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}"
|
|
|
56
|
+ sed -i "s/port=[^ ]*/port=${hbbr_port}/g" "${PACKAGE_BASE}/config/hbbr.conf"
|
|
|
57
|
+ sed -i "s/port=[^ ]*/port=${hbbs_port}/g" "${PACKAGE_BASE}/config/hbbs.conf"
|
|
|
58
|
+
|
|
|
59
|
+ # 添加防火墙配置
|
|
|
60
|
+ cat "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}" >"/tmp/${FWFILENAME}"
|
|
|
61
|
+ ${SERVICETOOL} --install-configure-file --package "/tmp/${FWFILENAME}" >/dev/null
|
|
|
62
|
+ rm -f "/tmp/${FWFILENAME}"
|
|
|
63
|
+
|
|
|
64
|
+ # 设置文件权限
|
|
|
65
|
+ chmod -R 755 "${PACKAGE_BASE}"/*
|
|
|
66
|
+ chmod -R 755 "/var/packages/${PACKAGE_NAME}/scripts"/*
|
|
|
67
|
+ chmod -R 755 "/var/packages/${PACKAGE_NAME}/WIZARD_UIFILES"/*
|
|
|
68
|
+ chmod 644 "/var/packages/${PACKAGE_NAME}/INFO"
|
|
|
69
|
+ fi
|
|
|
70
|
+
|
|
|
71
|
+ exit 0
|
|
|
72
|
+}
|
|
|
73
|
+
|
|
|
74
|
+preuninst() {
|
|
|
75
|
+ # 停用套件
|
|
|
76
|
+ "${PACKAGE_SSS}" stop
|
|
|
77
|
+
|
|
|
78
|
+ # 删除防火墙配置
|
|
|
79
|
+ if [ "${SYNOPKG_PKG_STATUS}" == "UNINSTALL" ]; then
|
|
|
80
|
+ ${SERVICETOOL} --remove-configure-file --package "${FWFILENAME}" >/dev/null
|
|
|
81
|
+ fi
|
|
|
82
|
+
|
|
|
83
|
+ exit 0
|
|
|
84
|
+}
|
|
|
85
|
+
|
|
|
86
|
+postuninst() {
|
|
|
87
|
+ # 删除不必要的目录...
|
|
|
88
|
+ if [ -d "/usr/syno/etc/packages/${PACKAGE_NAME}" ]; then
|
|
|
89
|
+ rm -rf "/usr/syno/etc/packages/${PACKAGE_NAME}"
|
|
|
90
|
+ fi
|
|
|
91
|
+
|
|
|
92
|
+ exit 0
|
|
|
93
|
+}
|
|
|
94
|
+
|
|
|
95
|
+preupgrade() {
|
|
|
96
|
+ # 停用套件
|
|
|
97
|
+ "${PACKAGE_SSS}" stop
|
|
|
98
|
+
|
|
|
99
|
+# Not working yet...
|
|
|
100
|
+# # 检索旧设置...
|
|
|
101
|
+# hbbr_port=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbr.conf" port`
|
|
|
102
|
+# hbbs_port=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbs.conf" port`
|
|
|
103
|
+# sed -i "s/21117/${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/WIZARD_UIFILES/upgrade_uifile"
|
|
|
104
|
+# sed -i "s/21116/${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/WIZARD_UIFILES/upgrade_uifile"
|
|
|
105
|
+## Not working yet...
|
|
|
106
|
+
|
|
|
107
|
+ # 备份数据文件...
|
|
|
108
|
+ if [ -d "${SYNOPKG_PKGDEST}" ]; then
|
|
|
109
|
+ DIRS4BACKUP="data logs hbbs.db config"
|
|
|
110
|
+ for DIR in $DIRS4BACKUP; do
|
|
|
111
|
+ if [ -d "${SYNOPKG_PKGDEST}/${DIR}" ]; then
|
|
|
112
|
+ mkdir -p "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}"
|
|
|
113
|
+ mv "${SYNOPKG_PKGDEST}/${DIR}"/* "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}"
|
|
|
114
|
+ rmdir "${SYNOPKG_PKGDEST}/${DIR}"
|
|
|
115
|
+ elif [ -f "${SYNOPKG_PKGDEST}/${DIR}" ]; then
|
|
|
116
|
+ mv "${SYNOPKG_PKGDEST}/${DIR}" "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade"
|
|
|
117
|
+ fi
|
|
|
118
|
+ done
|
|
|
119
|
+ fi
|
|
|
120
|
+
|
|
|
121
|
+ exit 0
|
|
|
122
|
+}
|
|
|
123
|
+
|
|
|
124
|
+postupgrade() {
|
|
|
125
|
+ # 恢复数据文件...
|
|
|
126
|
+ if [ -d "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade" ]; then
|
|
|
127
|
+ for DIR in `ls "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade"`
|
|
|
128
|
+ do
|
|
|
129
|
+ if [ -d "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}" ]; then
|
|
|
130
|
+ [ ! -d "${SYNOPKG_PKGDEST}/${DIR}" ] && mkdir "${SYNOPKG_PKGDEST}/${DIR}"
|
|
|
131
|
+ mv "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}"/* "${SYNOPKG_PKGDEST}/${DIR}"
|
|
|
132
|
+ rmdir "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}"
|
|
|
133
|
+ elif [ -f "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}" ]; then
|
|
|
134
|
+ mv "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}" "${SYNOPKG_PKGDEST}"
|
|
|
135
|
+ fi
|
|
|
136
|
+ done
|
|
|
137
|
+ rmdir "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade"
|
|
|
138
|
+ fi
|
|
|
139
|
+
|
|
|
140
|
+ # 恢复设置...
|
|
|
141
|
+ hbbr_port=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbr.conf" port` >>/tmp/wakko.txt
|
|
|
142
|
+ hbbs_port=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbs.conf" port` >>/tmp/wakko.txt
|
|
|
143
|
+ nat_port=`expr ${hbbs_port} - 1`
|
|
|
144
|
+ sed -i "s/中继端口:21117/中继端口:${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt
|
|
|
145
|
+ sed -i "s/ID\/注册端口:21116/ID\/注册端口:${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt
|
|
|
146
|
+ sed -i "s/NAT测试端口:21115/NAT测试端口:${nat_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt
|
|
|
147
|
+ sed -i "s/21117/${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}" >>/tmp/wakko.txt
|
|
|
148
|
+ sed -i "s/21116/${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}" >>/tmp/wakko.txt
|
|
|
149
|
+ sed -i "s/21115/${nat_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}" >>/tmp/wakko.txt
|
|
|
150
|
+
|
|
|
151
|
+ # 设置文件权限
|
|
|
152
|
+ chmod -R 755 "/var/packages/${PACKAGE_NAME}/scripts"/*
|
|
|
153
|
+ chmod -R 755 "/var/packages/${PACKAGE_NAME}/WIZARD_UIFILES"/*
|
|
|
154
|
+ chmod 644 "/var/packages/${PACKAGE_NAME}/INFO"
|
|
|
155
|
+
|
|
|
156
|
+ exit 0
|
|
|
157
|
+}
|