HEX
Server: Apache/2.4.63 (Unix)
System: Linux TOMS-220NAS 4.4.302+ #86009 SMP Wed Nov 26 18:19:17 CST 2025 x86_64
User: flavio87 (1026)
PHP: 8.3.27
Disabled: NONE
Upload Files
File: //usr/lib64/udev/script/ups-check.sh
#!/bin/sh

. /usr/syno/bin/synoupscommon

echo "=== [" `date` "] udev check UPS rule ===" >> $UPS_LOG

vendorID=`echo $PRODUCT | awk -F/ '{printf("0x%04s", $1);}' | sed 's: :0:g'`
productID=`echo $PRODUCT | awk -F/ '{printf("0x%04s", $2);}' | sed 's: :0:g'`
echo "Vendor: $vendorID, Product: $productID, Action: $ACTION" >> $UPS_LOG

{
flock -x 99
if [ $ACTION = add ]; then
	if [ -f "$UPS_CONF_BACKUP" ]; then
		/bin/cp $UPS_CONF_BACKUP $UPS_CONF
	fi

	# for Powercom RPT-600AP reconnect randomly
	if [ $vendorID = '0x0d9f' -a $productID = '0x0004' ]; then
		/bin/sed -i "s/.*pollonly/\tpollonly/" $UPS_CONF
	fi
fi
flock -u 99
} 99<>$UPS_LOCK

CheckUPSSupport $vendorID $productID
if [ $? -eq 0 ]; then
	logger -p user.err -t "udev" "[UPS] $ACTION USB UPS(PRODUCT=$PRODUCT)"
	echo "$ACTION USB UPS(PRODUCT=$PRODUCT)" >> $UPS_LOG
	# we should avoid UPS to receive unplug->plug event but finally
	# change to plug->unplug. So we add lock until ups-util.sh script
	# finished.
	RetryTime=5
	while [ -f "$UPS_UDEVLOCK" -a $RetryTime -gt 0 ]; do
		RetryTime=`expr $RetryTime - 1`
		logger -p user.err -t "udev" "ups lock found. $RetryTime times left for waiting..."
		sleep 3
	done

	touch $UPS_UDEVLOCK
	echo "support"
	exit 0
fi

echo "Device($PRODUCT) is not supported UPS..." >> $UPS_LOG
echo "unsupported"
exit 0