https://github.com/wandercone/appdatasync/releases/download/2026.09.19/appdatasync-2026.09.19-noarch-1.txz 2f8c419e6a362bee2d973b4d338bab3d1db0f8763949f2ae1fbec30a9db2e397 # Generated appdatasync plugin scheduled tasks # Disable/enable and change schedule from the plugin settings page /dev/null | grep -v '2026.09.19') # ensure plugin config directory exists on /boot so user config survives updates mkdir -p /boot/config/plugins/appdatasync # copy the default/example config if no user config exists yet if [[ ! -f /boot/config/plugins/appdatasync/config.yaml ]]; then cp /usr/local/emhttp/plugins/appdatasync/config.yaml.example /boot/config/plugins/appdatasync/config.yaml fi # ensure python dependencies are present if command -v python3 >/dev/null 2>&1; then python3 -m pip install -r /usr/local/emhttp/plugins/appdatasync/requirements.txt >/dev/null 2>&1 if [ $? -ne 0 ]; then echo "Warning: failed to install Python dependencies from requirements.txt" echo " You may need to run: python3 -m pip install -r /usr/local/emhttp/plugins/appdatasync/requirements.txt" fi else echo "Warning: python3 not found. Python dependencies were not installed." fi # regenerate the plugin-owned cron file from saved state (also recreates it on boot) /usr/bin/php /usr/local/emhttp/plugins/appdatasync/include/cron.php --install-cron 2>/dev/null || true # sync the plugin-owned cron file into the running cron state /usr/local/sbin/update_cron echo "" echo "----------------------------------------------------" echo " appdatasync has been installed." echo " Version: 2026.09.19" echo "----------------------------------------------------" echo "" ]]>