| Server IP : 193.86.120.172 / Your IP : 216.73.216.215 Web Server : Apache/2.4.63 (Unix) System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64 User : kubec ( 1026) PHP Version : 8.2.28 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /volume1/@appstore/SynologyDrive/scripts/ |
Upload File : |
#!/bin/sh
set -eu
. /var/packages/SynologyDrive/target/scripts/Common.sh
. /var/packages/SynologyDrive/scripts/pkg_utils
GET_KEY_VALUE="/usr/syno/bin/synogetkeyvalue"
PrintPkgNameAndRejectHook() {
echo 'Synology Drive Server'
exit 1
}
IsShareSyncConnecting() {
local share_sync_path="$1"
local db_path="${share_sync_path}/db/sys.sqlite"
logger -p 3 "[VolumeDeleteCheck] Checking ShareSync connection in $db_path"
if [ "$(sqlite3 "$db_path" "select count(*) from connection_table")" = "0" ]; then
logger -p 3 "[VolumeDeleteCheck] No active connections found in ShareSync database"
return 0
fi
if [ "$(sqlite3 "$db_path" "select count(*) from session_table")" = "0" ]; then
logger -p 3 "[VolumeDeleteCheck] No active sessions found in ShareSync database"
return 0
fi
logger -p 3 "[VolumeDeleteCheck] Active connections or sessions found in ShareSync database"
return 1
}
RemoveShareSyncRepo() {
local vol="$1"
local repo_path="${vol}/@SynologyDriveShareSync"
if [ -d "$repo_path" ]; then
logger -p 3 "[VolumeDeleteCheck] Removing ShareSync repo at $repo_path"
rm -rf "$repo_path"
else
logger -p 3 "[VolumeDeleteCheck] Repo path $repo_path does not exist, skipping removal"
fi
}
UpdateShareSyncConf() {
local SHARESYNC_VOL="$1"
local DRIVE_VOL="$2"
for conf_name in daemon.conf monitor.conf service.conf; do
local conf="${SHARESYNC_CONF_LOCATION}/${conf_name}"
if [ -f "$conf" ]; then
logger -p 3 "[VolumeDeleteCheck] Updating $conf: replacing $SHARESYNC_VOL with $DRIVE_VOL"
sed -i "s|${SHARESYNC_VOL}|${DRIVE_VOL}|g" "$conf"
else
logger -p 3 "[VolumeDeleteCheck] Config file $conf not found, skipping"
fi
done
}
VOL="$1"
$CSTN_FEASIBILITY_CHECK volume_delete_check "$VOL" || PrintPkgNameAndRejectHook
SHARESYNC_VOL="$(${GET_KEY_VALUE} "${SHARESYNC_CONF_FILE_PATH}" "${SHARESYNC_REPO_VOL_KEY}")"
if [ "$VOL" != "$SHARESYNC_VOL" ]; then
exit 0
fi
repo_path="${SHARESYNC_VOL}/@SynologyDriveShareSync"
IsShareSyncConnecting "$repo_path"
if [ $? -eq 1 ]; then
PrintPkgNameAndRejectHook
fi
"${SHARESYNC_PKG_BIN_PATH}/srvctl" --stop
RemoveShareSyncRepo "$SHARESYNC_VOL"
DRIVE_VOL="$(${GET_KEY_VALUE} "${CSTN_PKG_DB_PATH_FILE}" "db-vol")"
UpdateShareSyncConf "$SHARESYNC_VOL" "$DRIVE_VOL"
"${SHARESYNC_PKG_BIN_PATH}/srvctl" --start
exit 0