#!/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" 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/中继端口:21117/中继端口:${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/INFO" sed -i "s/ID\/注册端口:21116/ID\/注册端口:${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/INFO" sed -i "s/NAT测试端口:21115/NAT测试端口:${nat_port}/" "/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" # 添加防火墙配置 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` sed -i "s/中继端口:21117/中继端口:${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt sed -i "s/ID\/注册端口:21116/ID\/注册端口:${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt sed -i "s/NAT测试端口:21115/NAT测试端口:${nat_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt 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 }