HEX
Server: Apache/2.2.34 (Unix) mod_fastcgi/mod_fastcgi-SNAP-0910052141
System: Linux Kou-Etsu-Dou 4.4.59+ #25556 SMP PREEMPT Thu Mar 4 18:03:46 CST 2021 x86_64
User: hosam (1026)
PHP: 7.2.29
Disabled: NONE
Upload Files
File: //usr/libexec/share_delete/SynoShareSnapShareDeleteHook.sh
#!/bin/sh

###############################################################
#   This script should be hooked when invoking SYNOShareDelete()
#   Usable environment variable:
#       NITEMS, SHARE_NAME_X, SHARE_PATH_X, SHARE_OP_RESULT_X
#
###############################################################

BIN=/usr/syno/sbin/synosharesnapshot

handle_syslock() {
	local SHARE=$1
	local SYSLOCK_PATH="/run/sharesnap/sys_lock/""${SHARE}"".sharesnap_sys_lock"
	local FLOCK_PATH="/run/lock/sharesnap/sys_lock/""${SHARE}"".sharesnap_sys_lock"

	if [ -f "${SYSLOCK_PATH}" ]; then
		rm "${SYSLOCK_PATH}"
	fi

	if [ -f "${FLOCK_PATH}" ]; then
		rm "${FLOCK_PATH}"
	fi
}

case $1 in
	--sdk-mod-ver)
		echo "2.0" ;;
	--name)
		echo "ShareSnapshot" ;;
	--pkg-ver)
		echo "1.0" ;;
	--vendor)
		echo "Synology Inc." ;;
	--pre)
		if [ -f "${BIN}" ]; then
			INDEX=1
			NITEMS=$((NITEMS + 1))
			while [ "${INDEX}" != "${NITEMS}" ]
			do
				eval "SHARE_OP_RESULT=\$SHARE_OP_RESULT_$INDEX"
				eval "SHARE_NAME=\$SHARE_NAME_$INDEX"
				${BIN} snap_syslock delete_share "${SHARE_NAME}"
				INDEX=$((INDEX + 1))
			done
		fi
		;;
	--post)
		INDEX=1
		NITEMS=$((NITEMS + 1))
		while [ "${INDEX}" != "${NITEMS}" ]
		do
			eval "SHARE_OP_RESULT=\$SHARE_OP_RESULT_$INDEX"
			eval "SHARE_NAME=\$SHARE_NAME_$INDEX"

			if [ "${SHARE_OP_RESULT}" == "0x0000" ]; then
				handle_syslock "${SHARE_NAME}"
			fi
			INDEX=$((INDEX + 1))
		done
	;;
	*)
		echo "Usage: $0 --sdk_mod_ver|--name|--pkg_ver|--vendor|--pre|--post" ;;
esac