HEX
Server: Apache/2.4.63 (Unix)
System: Linux Synopilou92 4.4.302+ #72806 SMP Mon Jul 21 23:16:00 CST 2025 x86_64
User: pilou92 (1026)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: //usr/syno/plugin/share_set/VolumeSpaceUsageShareSet.sh
#!/bin/sh

###############################################################
#   This script should be hooked when invoking share_set hook.
#   Usable environment variable:
#       RESULT, SHARE_NAME, ORIGIN_SHARE_READONLY, SHARE_READONLY
###############################################################

SYNOSUBVOLTYPE_BINARY=/usr/syno/bin/synosubvoltype
SYNOFSTOOL_BINARY=/usr/syno/sbin/synofstool
SYNOSHARE_BINARY=/usr/syno/sbin/synoshare

GetFsType() {
	$SYNOFSTOOL_BINARY --get-fs-type "$1"
}

case $1 in
	--sdk-mod-ver)
		echo "2.0"
	;;
	--name)
		echo "VolumeSpaceUsageShareSet"
	;;
	--pkg-ver)
		echo "1.0"
	;;
	--vendor)
		echo "Synology Inc."
	;;
	--pre)
		#Actions before share set
	;;
	--post)
		#Actions after share set

		if [ "0" != "${RESULT}" ]; then
			exit 0
		fi

		SHARE_REAL_PATH="$($SYNOSHARE_BINARY --get-real-path "$SHARE_NAME")"
		if [ ! -d "$SHARE_REAL_PATH" ]; then
			exit 0
		fi

		if [ "btrfs" != "$(GetFsType "$SHARE_REAL_PATH")" ]; then
			exit 0
		fi

		# share read-only changed from ro to rw
		if [ "1" = "$ORIGIN_SHARE_READONLY" ] && [ "0" = "$SHARE_READONLY" ]; then
			$SYNOSUBVOLTYPE_BINARY "$SHARE_REAL_PATH"
		fi
	;;
	*)
		echo "Usage: $0 --sdk_mod_ver|--name|--pkg_ver|--vendor|--pre|--post"
	;;
esac