diff --git a/Plugin/usr/local/emhttp/plugins/varaverk/varaverk.page b/Plugin/usr/local/emhttp/plugins/varaverk/Varaverk.page similarity index 100% rename from Plugin/usr/local/emhttp/plugins/varaverk/varaverk.page rename to Plugin/usr/local/emhttp/plugins/varaverk/Varaverk.page diff --git a/Plugin/usr/local/emhttp/plugins/varaverk/api/settings.php b/Plugin/usr/local/emhttp/plugins/varaverk/api/settings.php new file mode 100644 index 0000000..36ba32d --- /dev/null +++ b/Plugin/usr/local/emhttp/plugins/varaverk/api/settings.php @@ -0,0 +1,24 @@ + false, 'error' => 'scripts_dir is required']); + exit; +} + +if (!is_dir($scriptsDir)) { + echo json_encode(['ok' => false, 'error' => 'Directory does not exist']); + exit; +} + +$cfgFile = '/boot/config/plugins/varaverk/varaverk.cfg'; +$cfgDir = dirname($cfgFile); +if (!is_dir($cfgDir)) mkdir($cfgDir, 0755, true); + +$content = 'SCRIPTS_DIR="' . addslashes($scriptsDir) . '"' . "\n"; +$ok = file_put_contents($cfgFile, $content) !== false; + +echo json_encode(['ok' => $ok, 'error' => $ok ? null : 'Failed to write cfg file']); diff --git a/Plugin/usr/local/emhttp/plugins/varaverk/include/config.php b/Plugin/usr/local/emhttp/plugins/varaverk/include/config.php index 4cf2995..c10a518 100644 --- a/Plugin/usr/local/emhttp/plugins/varaverk/include/config.php +++ b/Plugin/usr/local/emhttp/plugins/varaverk/include/config.php @@ -2,8 +2,12 @@ // Config file parser and writer. // Reads master.conf and the appropriate host*.conf based on running host. -define('SCRIPTS_DIR', '/mnt/user/appdata/unraid_scripts'); +define('PLUGIN_CFG', '/boot/config/plugins/varaverk/varaverk.cfg'); + +$_vv_cfg = @parse_ini_file(PLUGIN_CFG) ?: []; +define('SCRIPTS_DIR', $_vv_cfg['SCRIPTS_DIR'] ?? '/mnt/user/appdata/unraid_scripts'); define('CONF_DIR', SCRIPTS_DIR . '/Configurations'); +unset($_vv_cfg); function vv_get_hostname(): string { return trim(shell_exec('hostname -s') ?: ''); diff --git a/Plugin/usr/local/emhttp/plugins/varaverk/include/docs.php b/Plugin/usr/local/emhttp/plugins/varaverk/include/docs.php index e2596ef..3b7a869 100644 --- a/Plugin/usr/local/emhttp/plugins/varaverk/include/docs.php +++ b/Plugin/usr/local/emhttp/plugins/varaverk/include/docs.php @@ -2,6 +2,8 @@ // Docs — markdown file discovery, $VAR substitution, and rendering. // Requires parsedown or similar. Falls back to
 if not available.
 
+require_once __DIR__ . '/config.php';
+
 define('PARSEDOWN_PATH', '/usr/local/emhttp/plugins/varaverk/lib/Parsedown.php');
 
 function vv_docs_tree(): array {
diff --git a/Plugin/usr/local/emhttp/plugins/varaverk/include/scheduler.php b/Plugin/usr/local/emhttp/plugins/varaverk/include/scheduler.php
index d057df3..95621f1 100644
--- a/Plugin/usr/local/emhttp/plugins/varaverk/include/scheduler.php
+++ b/Plugin/usr/local/emhttp/plugins/varaverk/include/scheduler.php
@@ -2,6 +2,8 @@
 // Scheduler — manages schedule.json and /etc/cron.d/varaverk.
 // schedule.json is per-host, never synced.
 
+require_once __DIR__ . '/config.php';
+
 define('SCHEDULE_FILE', '/boot/config/plugins/varaverk/schedule.json');
 define('CRON_FILE',     '/etc/cron.d/varaverk');
 define('CRON_USER',     'root');
diff --git a/Plugin/usr/local/emhttp/plugins/varaverk/pages/config.php b/Plugin/usr/local/emhttp/plugins/varaverk/pages/config.php
index a1e31b5..3eda69d 100644
--- a/Plugin/usr/local/emhttp/plugins/varaverk/pages/config.php
+++ b/Plugin/usr/local/emhttp/plugins/varaverk/pages/config.php
@@ -3,10 +3,25 @@ require_once dirname(__DIR__) . '/include/config.php';
 $files = vv_get_conf_files();
 $active = $_GET['conf'] ?? ($files[0] ?? '');
 if (!in_array($active, $files)) $active = $files[0] ?? '';
+$currentScriptsDir = SCRIPTS_DIR;
 ?>
 
 
+ +
+

Plugin Settings

+
+ + + + +
+
+
@@ -35,6 +50,21 @@ if (!in_array($active, $files)) $active = $files[0] ?? '';