| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- #!/bin/sh
- PACKAGE_NAME="$SYNOPKG_PKGNAME"
- PACKAGE_BASE="/var/packages/${PACKAGE_NAME}/target"
- PACKAGE_SSS="/var/packages/${PACKAGE_NAME}/scripts/start-stop-status"
- SERVICETOOL="/usr/syno/bin/servicetool"
- GETKEYVALUE="/usr/syno/bin/synogetkeyvalue"
- SETKEYVALUE="/usr/syno/bin/synosetkeyvalue"
- FWFILENAME="RustDesk_Server.sc"
- [ "${hbbr_port}" == "" ] && hbbr_port="21117"
- [ "${hbbs_port}" == "" ] && hbbs_port="21116"
- [ "${key}" == "" ] && key=""
- [ "${email}" == "" ] && email=""
- nat_port=`expr ${hbbs_port} - 1`
- preinst() {
- exit 0
- }
- postinst() {
- if [ "${SYNOPKG_PKG_STATUS}" == "INSTALL" ]; then
- # 导入另一个RustDesk服务器数据
- import_db="false"
- import_all="false"
- if [ "${rds_old_import_all}" == "true" ]; then
- rds_old_import_db="true"
- import_all="true"
- elif [ "${rds_import_all}" == "true" ]; then
- rds_import_db="true"
- import_all="true"
- fi
- if [ "${rds_old_import_db}" == "true" ]; then
- import_db="true"
- PACKAGE_IMPORT_DIR="/var/packages/RustDesk_Server"
- elif [ "${rds_import_db}" == "true" ]; then
- import_db="true"
- PACKAGE_IMPORT_DIR="/var/packages/RustDesk Server"
- fi
- if [ "${import_db}" == "true" ]; then
- [ -x "${PACKAGE_IMPORT_DIR}/scripts/start-stop-status" ] \
- && SYNOPKG_PKGNAME="RustDesk Server" "${PACKAGE_IMPORT_DIR}/scripts/start-stop-status" stop 2>&1
- [ -f "${PACKAGE_IMPORT_DIR}/enabled" ] && rm -f "${PACKAGE_IMPORT_DIR}/enabled"
- [ -d "${PACKAGE_IMPORT_DIR}/target/hbbs.db" ] && cp -prf "${PACKAGE_IMPORT_DIR}/target/hbbs.db" "${PACKAGE_BASE}"
- fi
- if [ "${import_all}" == "true" ]; then
- [ -d "${PACKAGE_IMPORT_DIR}/target/logs" ] && cp -prf "${PACKAGE_IMPORT_DIR}/target/logs" "${PACKAGE_BASE}"
- fi
- # 添加应用配置
- sed -i "s/relay port: 21117/relay port: ${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/INFO"
- sed -i "s/ID\/rendezvous port: 21116/ID\/rendezvous port: ${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/INFO"
- sed -i "s/NAT test port: 21115/NAT test port: ${nat_port}/" "/var/packages/${PACKAGE_NAME}/INFO"
- sed -i "s/Key: ()/Key: (${key})/" "/var/packages/${PACKAGE_NAME}/INFO"
- sed -i "s/Email: ()/Email: (${email})/" "/var/packages/${PACKAGE_NAME}/INFO"
- sed -i "s/21117/${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}"
- sed -i "s/21116/${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}"
- sed -i "s/21115/${nat_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}"
- sed -i "s/port=[^ ]*/port=${hbbr_port}/g" "${PACKAGE_BASE}/config/hbbr.conf"
- sed -i "s/port=[^ ]*/port=${hbbs_port}/g" "${PACKAGE_BASE}/config/hbbs.conf"
- sed -i "s/key=[^ ]*/key=${key}/g" "${PACKAGE_BASE}/config/hbbs.conf"
- sed -i "s/email=[^ ]*/email=${email}/g" "${PACKAGE_BASE}/config/hbbs.conf"
- # 添加防火墙配置
- cat "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}" >"/tmp/${FWFILENAME}"
- ${SERVICETOOL} --install-configure-file --package "/tmp/${FWFILENAME}" >/dev/null
- rm -f "/tmp/${FWFILENAME}"
- # 设置文件权限
- chmod -R 755 "${PACKAGE_BASE}"/*
- chmod -R 755 "/var/packages/${PACKAGE_NAME}/scripts"/*
- chmod -R 755 "/var/packages/${PACKAGE_NAME}/WIZARD_UIFILES"/*
- chmod 644 "/var/packages/${PACKAGE_NAME}/INFO"
- fi
- exit 0
- }
- preuninst() {
- # 停用套件
- "${PACKAGE_SSS}" stop
- # 删除防火墙配置
- if [ "${SYNOPKG_PKG_STATUS}" == "UNINSTALL" ]; then
- ${SERVICETOOL} --remove-configure-file --package "${FWFILENAME}" >/dev/null
- fi
- exit 0
- }
- postuninst() {
- # 删除不必要的目录...
- if [ -d "/usr/syno/etc/packages/${PACKAGE_NAME}" ]; then
- rm -rf "/usr/syno/etc/packages/${PACKAGE_NAME}"
- fi
- exit 0
- }
- preupgrade() {
- # 停用套件
- "${PACKAGE_SSS}" stop
- # Not working yet...
- # # 检索旧设置...
- # hbbr_port=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbr.conf" port`
- # hbbs_port=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbs.conf" port`
- # sed -i "s/21117/${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/WIZARD_UIFILES/upgrade_uifile"
- # sed -i "s/21116/${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/WIZARD_UIFILES/upgrade_uifile"
- ## Not working yet...
- # 备份数据文件...
- if [ -d "${SYNOPKG_PKGDEST}" ]; then
- DIRS4BACKUP="data logs hbbs.db config"
- for DIR in $DIRS4BACKUP; do
- if [ -d "${SYNOPKG_PKGDEST}/${DIR}" ]; then
- mkdir -p "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}"
- mv "${SYNOPKG_PKGDEST}/${DIR}"/* "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}"
- rmdir "${SYNOPKG_PKGDEST}/${DIR}"
- elif [ -f "${SYNOPKG_PKGDEST}/${DIR}" ]; then
- mv "${SYNOPKG_PKGDEST}/${DIR}" "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade"
- fi
- done
- fi
- exit 0
- }
- postupgrade() {
- # 恢复数据文件...
- if [ -d "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade" ]; then
- for DIR in `ls "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade"`
- do
- if [ -d "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}" ]; then
- [ ! -d "${SYNOPKG_PKGDEST}/${DIR}" ] && mkdir "${SYNOPKG_PKGDEST}/${DIR}"
- mv "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}"/* "${SYNOPKG_PKGDEST}/${DIR}"
- rmdir "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}"
- elif [ -f "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}" ]; then
- mv "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade/${DIR}" "${SYNOPKG_PKGDEST}"
- fi
- done
- rmdir "${SYNOPKG_PKGDEST}/../${PACKAGE_NAME}_upgrade"
- fi
- # 恢复设置...
- hbbr_port=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbr.conf" port` >>/tmp/wakko.txt
- hbbs_port=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbs.conf" port` >>/tmp/wakko.txt
- nat_port=`expr ${hbbs_port} - 1`
- key=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbs.conf" key` >>/tmp/wakko.txt
- email=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbs.conf" email` >>/tmp/wakko.txt
- sed -i "s/relay port: 21117/relay port: ${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt
- sed -i "s/ID\/rendezvous port: 21116/ID\/rendezvous port: ${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt
- sed -i "s/NAT test port: 21115/NAT test port: ${nat_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt
- sed -i "s/Key: ()/Key: (${key})/" "/var/packages/${PACKAGE_NAME}/INFO"
- sed -i "s/Email: ()/Email: (${email})/" "/var/packages/${PACKAGE_NAME}/INFO"
- sed -i "s/21117/${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}" >>/tmp/wakko.txt
- sed -i "s/21116/${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}" >>/tmp/wakko.txt
- sed -i "s/21115/${nat_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}" >>/tmp/wakko.txt
- # 设置文件权限
- chmod -R 755 "/var/packages/${PACKAGE_NAME}/scripts"/*
- chmod -R 755 "/var/packages/${PACKAGE_NAME}/WIZARD_UIFILES"/*
- chmod 644 "/var/packages/${PACKAGE_NAME}/INFO"
- exit 0
- }
|