From f276a0c7725bb56e80ff1b00d3420ede68496122 Mon Sep 17 00:00:00 2001 From: Eli Bosley Date: Mon, 24 Nov 2025 10:33:08 -0500 Subject: [PATCH] refactor: Simplify plugin processing logic by replacing 'download_only' variable with 'download_mode'. Update related conditions for clarity and consistency in plugin installation and downloading behavior. --- .../dynamix.plugin.manager/scripts/plugin | 53 ++++++++++--------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/emhttp/plugins/dynamix.plugin.manager/scripts/plugin b/emhttp/plugins/dynamix.plugin.manager/scripts/plugin index 83366f364..e8ac7fe68 100755 --- a/emhttp/plugins/dynamix.plugin.manager/scripts/plugin +++ b/emhttp/plugins/dynamix.plugin.manager/scripts/plugin @@ -294,7 +294,11 @@ function filter_url($url) { // is processed for any of those methods. // function plugin($method, $plugin_file, &$error) { - global $unraid, $logger, $download_only; + global $unraid, $logger; + $download_mode = ($method === 'download'); + if ($download_mode) { + $method = 'install'; + } $methods = ['install', 'remove']; // parse plugin definition XML file @@ -464,7 +468,7 @@ function plugin($method, $plugin_file, &$error) { // if ($file->attributes()->Run) { $command = $file->attributes()->Run; - if ($download_only) { + if ($download_mode) { $target = $name ?: ($file->LOCAL ?: 'inline script'); my_logger("skipping run: $command $target - download-only mode", $logger); continue; @@ -502,7 +506,6 @@ $notify = '/usr/local/emhttp/webGui/scripts/notify'; $boot = '/boot/config/plugins'; $plugins = '/var/log/plugins'; $tmp = '/tmp/plugins'; -$download_only = false; $script = $argv[0]; $method = $argv[1]; $optional_args = array_slice($argv, 2); @@ -608,8 +611,8 @@ if ($method == 'install' || $method == 'download') { $argv[2] = preg_replace('#[\x00-\x1F\x80-\xFF]#', '', $argv[2]); $plugin = basename($argv[2]); $options = array_slice($argv, 3); - $download_only = ($method === 'download'); - if (!$download_only) { + $is_download = ($method === 'download'); + if (!$is_download) { $legacy_download_flags = array_intersect($options, ['download-only', 'download']); if (!empty($legacy_download_flags)) { write("plugin: use 'plugin download' instead of 'plugin install ... download-only'\n"); @@ -622,16 +625,16 @@ if ($method == 'install' || $method == 'download') { write("plugin: $plugin is not a plg file\n"); done(1); } - if ($download_only) { + if ($is_download) { write("plugin: download-only mode enabled, skipping install commands\n"); } - $action = $download_only ? 'downloading' : 'installing'; + $action = $is_download ? 'downloading' : 'installing'; write("plugin: $action: $plugin\n"); // check for URL if (preg_match('#^https?://#',$argv[2])) { $pluginURL = $argv[2]; // run hook scripts for pre processing - if (!$download_only) { + if (!$is_download) { pre_hooks(); } $plugin_file = "$tmp/$plugin"; @@ -640,7 +643,7 @@ if ($method == 'install' || $method == 'download') { write("plugin: $error\n"); @unlink($plugin_file); // run hook scripts for post processing - if (!$download_only) { + if (!$is_download) { post_hooks($error); } done(1); @@ -656,7 +659,7 @@ if ($method == 'install' || $method == 'download') { move($plugin_file, "$boot-error"); } // run hook scripts for post processing - if (!$download_only) { + if (!$is_download) { post_hooks($error); } done(1); @@ -668,7 +671,7 @@ if ($method == 'install' || $method == 'download') { move($plugin_file, "$boot-error"); } // run hook scripts for post processing - if (!$download_only) { + if (!$is_download) { post_hooks($error); } done(1); @@ -680,7 +683,7 @@ if ($method == 'install' || $method == 'download') { if ($plugin_file == $installed_plugin_file) { write("plugin: not re-installing same plugin\n"); // run hook scripts for post processing - if (!$download_only) { + if (!$is_download) { post_hooks($error); } done(1); @@ -690,7 +693,7 @@ if ($method == 'install' || $method == 'download') { if ($version === false) { write("plugin: $error\n"); // run hook scripts for post processing - if (!$download_only) { + if (!$is_download) { post_hooks($error); } done(1); @@ -699,7 +702,7 @@ if ($method == 'install' || $method == 'download') { if ($installed_version === false) { write("plugin: $error\n"); // run hook scripts for post processing - if (!$download_only) { + if (!$is_download) { post_hooks($error); } done(1); @@ -710,7 +713,7 @@ if ($method == 'install' || $method == 'download') { if (strcmp($version, $installed_version) < 0) { write("plugin: not installing older version\n"); // run hook scripts for post processing - if (!$download_only) { + if (!$is_download) { post_hooks($error); } done(1); @@ -718,17 +721,17 @@ if ($method == 'install' || $method == 'download') { if (strcmp($version, $installed_version) === 0) { write("plugin: not reinstalling same version\n"); // run hook scripts for post processing - if (!$download_only) { + if (!$is_download) { post_hooks($error); } done(1); } } // run hook scripts for pre processing - if (!$download_only) { + if (!$is_download) { pre_hooks(); } - if (plugin('install', $plugin_file, $error) === false) { + if (plugin($method, $plugin_file, $error) === false) { write("plugin: $error\n"); if (dirname($plugin_file) == "$boot") { move($plugin_file, "$boot-error"); @@ -738,7 +741,7 @@ if ($method == 'install' || $method == 'download') { $description = "Plugin failed to install"; exec("$notify -e ".escapeshellarg($event)." -s ".escapeshellarg($subject)." -d ".escapeshellarg($description)." -i 'warning'"); // run hook scripts for post processing - if (!$download_only) { + if (!$is_download) { post_hooks($error); } done(1); @@ -747,17 +750,17 @@ if ($method == 'install' || $method == 'download') { unlink($symlink); } else { // run hook scripts for pre processing - if (!$download_only) { + if (!$is_download) { pre_hooks(); } // fresh install - if (plugin('install', $plugin_file, $error) === false) { + if (plugin($method, $plugin_file, $error) === false) { write("plugin: $error\n"); if (dirname($plugin_file) == "$boot") { move($plugin_file, "$boot-error"); } // run hook scripts for post processing - if (!$download_only) { + if (!$is_download) { post_hooks($error); } done(1); @@ -768,16 +771,16 @@ if ($method == 'install' || $method == 'download') { if (!plugin('noInstall', $plugin_file, $error)) { if ($target != $plugin_file) copy($plugin_file, $target); symlink($target, $symlink); - $status = $download_only ? 'downloaded' : 'installed'; + $status = $is_download ? 'downloaded' : 'installed'; write("plugin: $plugin $status\n"); my_logger("$plugin $status", $logger); } else { - $script_action = $download_only ? 'staged' : 'executed'; + $script_action = $is_download ? 'staged' : 'executed'; write("script: $plugin $script_action\n"); my_logger("script: $plugin $script_action", $logger); } // run hook scripts for post processing - if (!$download_only) { + if (!$is_download) { post_hooks(); } done(0);