New automation action that executes user scripts from a dedicated scripts/ directory. Available as both a DO action and THEN action. Scripts are selected from a dropdown populated by /api/scripts. Security: only scripts in the scripts dir can run, path traversal blocked, no shell=True, stdout/stderr capped, configurable timeout (max 300s). Scripts receive SOULSYNC_EVENT, SOULSYNC_AUTOMATION, and SOULSYNC_SCRIPTS_DIR environment variables. Includes Dockerfile + docker-compose.yml changes for the scripts volume mount, and three example scripts (hello_world.sh, system_info.py, notify_ntfy.sh).
17 lines
643 B
Python
17 lines
643 B
Python
#!/usr/bin/env python3
|
|
"""Reports basic system info — useful for debugging Docker setups."""
|
|
import os
|
|
import platform
|
|
import shutil
|
|
|
|
print(f"Platform: {platform.system()} {platform.release()}")
|
|
print(f"Python: {platform.python_version()}")
|
|
print(f"Working Dir: {os.getcwd()}")
|
|
|
|
# Disk usage for common SoulSync paths
|
|
for path in ['/app/downloads', '/app/Transfer', '/app/data', './downloads', './Transfer']:
|
|
if os.path.exists(path):
|
|
usage = shutil.disk_usage(path)
|
|
free_gb = usage.free / (1024**3)
|
|
total_gb = usage.total / (1024**3)
|
|
print(f"Disk {path}: {free_gb:.1f} GB free / {total_gb:.1f} GB total")
|