installer 6.5 KB

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