From 5958d33fce2a761685d71ae0cc93cd619b4e6244 Mon Sep 17 00:00:00 2001 From: Eli Bosley Date: Mon, 24 Mar 2025 12:35:25 -0400 Subject: [PATCH] chore: cleanup the cleanup scripts (#1266) ## Summary by CodeRabbit - **New Features** - Updated the plugin installation endpoint to use a new port for improved connectivity. - Streamlined installation and removal processes for a more reliable setup and clearer cleanup feedback. - Introduced a new script to manage cleanup operations, enhancing system maintenance during removals. - **Chores** - Expanded file monitoring to support additional file types, ensuring timely updates. - Optimized background operations that configure essential components for enhanced overall performance. --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- plugin/README.md | 2 +- .../builder/cli/setup-plugin-environment.ts | 2 +- plugin/package.json | 2 +- plugin/plugins/dynamix.unraid.net.plg | 163 ++--------- .../dynamix.unraid.net/install/doinst.sh | 270 ++++++++++++++++++ .../scripts/cleanup_operations.php | 87 ++++++ 6 files changed, 379 insertions(+), 147 deletions(-) create mode 100755 plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/scripts/cleanup_operations.php diff --git a/plugin/README.md b/plugin/README.md index 033e7fdd7..71634a4d7 100644 --- a/plugin/README.md +++ b/plugin/README.md @@ -53,7 +53,7 @@ Then install the plugin on your Unraid development machine by visiting: Then paste the following URL into the Unraid Plugins page: -`http://YOUR_LOCAL_DEV_MACHINE_IP:8080/plugins/local/dynamix.unraid.net.plg` +`http://YOUR_LOCAL_DEV_MACHINE_IP:5858/plugins/local/dynamix.unraid.net.plg` Replace `SERVER_NAME` with your development machine's hostname. diff --git a/plugin/builder/cli/setup-plugin-environment.ts b/plugin/builder/cli/setup-plugin-environment.ts index 38eb6d0d5..df326c2df 100644 --- a/plugin/builder/cli/setup-plugin-environment.ts +++ b/plugin/builder/cli/setup-plugin-environment.ts @@ -93,7 +93,7 @@ export const setupPluginEnv = async (argv: string[]): Promise => { "Base URL - will be used to determine the bucket, and combined with the tag (if set) to form the final URL", process.env.CI === "true" ? "This is a CI build, please set the base URL manually" - : `http://${process.env.HOST_LAN_IP}:8080` + : `http://${process.env.HOST_LAN_IP}:5858` ) .option( "--txz-path ", diff --git a/plugin/package.json b/plugin/package.json index a746eefb3..2ac944d5a 100644 --- a/plugin/package.json +++ b/plugin/package.json @@ -21,7 +21,7 @@ "build:txz": "tsx builder/build-txz.ts", "build:plugin": "tsx builder/build-plugin.ts", "build:validate": "npm run env:validate && npm run build", - "build:watcher": "nodemon --verbose --watch 'source/**/*' --ext ts,js --ignore '*.test.ts' --ignore 'node_modules/**' --ignore 'source/dynamix.unraid.net/install/**' --delay 5s --exec 'pnpm run build'", + "build:watcher": "nodemon --verbose --watch 'source/**/*' --watch 'plugins/dynamix.unraid.net.plg' --ext ts,js,plg --ignore '*.test.ts' --ignore 'node_modules/**' --ignore 'source/dynamix.unraid.net/install/**' --delay 5s --exec 'pnpm run build'", "// Docker commands": "", "build:watch": "./scripts/dc.sh pnpm run build:watcher", "docker:build": "docker compose build", diff --git a/plugin/plugins/dynamix.unraid.net.plg b/plugin/plugins/dynamix.unraid.net.plg index 3e2f5d349..83448cf20 100755 --- a/plugin/plugins/dynamix.unraid.net.plg +++ b/plugin/plugins/dynamix.unraid.net.plg @@ -88,8 +88,6 @@ DNSERR=no echo "Checking DNS..." dnscheck "mothership.unraid.net" -#dnscheck "wanip4.unraid.net" -#dnscheck "backup.unraid.net" [[ "${DNSERR}" == "yes" && "${DNS_SERVER1}" != "8.8.8.8" ]] && echo " Recommend navigating to Settings -> Network Settings and changing your DNS server to 8.8.8.8" # Note: DNS checks will fail if the network is not available at boot. Cannot exit the install when DNS checks fail. @@ -150,18 +148,6 @@ exit 0 &TXZ_SHA256; - - - MAINTXZ="&source;.txz" - - - - - - - - - /dev/null"); - } - if (file_exists("/usr/local/emhttp/plugins/dynamix.my.servers/include/UpdateFlashBackup.php")) { - # deactivate and delete local flash backup - echo "\nDeactivating flash backup. Please wait…"; - passthru("/usr/bin/php /usr/local/emhttp/plugins/dynamix.my.servers/include/UpdateFlashBackup.php deactivate"); - } -} - -if (file_exists("/etc/rc.d/rc.unraid-api")) { - echo "\nStopping unraid-api. Please wait…"; - $output = shell_exec("/etc/rc.d/rc.unraid-api stop --delete 2>&1'"); - if (!$output) { - echo "Waiting for unraid-api to stop...\n"; - sleep(5); // Give it a few seconds to fully stop - } - echo "Stopped unraid-api: $output"; - - # Find all PIDs referencing main.js and kill them, excluding grep process - $pids = shell_exec("ps aux | grep 'node /usr/local/unraid-api/dist/main.js' | grep -v grep | awk '{print $2}'"); - foreach(explode("\n", trim($pids)) as $pid) { - if ($pid) { - posix_kill((int)$pid, 9); - } - } -} - -# set "Allow Remote Access" to "No" and sign out from Unraid Connect -if ($msini !== false) { - if (!empty($msini['remote']['username'])) { - $var = parse_ini_file("/var/local/emhttp/var.ini"); - $keyfile = @file_get_contents($var['regFILE']); - if ($keyfile !== false) { - echo "\nSigning out of Unraid Connect\n"; - $ch = curl_init('https://keys.lime-technology.com/account/server/unregister'); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_POST, 1); - curl_setopt($ch, CURLOPT_POSTFIELDS, ['keyfile' => @base64_encode($keyfile)]); - curl_exec($ch); - curl_close($ch); - } - } - - # remove myservers.cfg - unlink('/boot/config/plugins/dynamix.my.servers/myservers.cfg'); - - # reload nginx to disable Remote Access - echo "\n⚠️ Reloading Web Server. If this window stops updating for two minutes please close it.\n"; - exec("/etc/rc.d/rc.nginx reload &>/dev/null"); -} -exit(0); -]]> - - - - - - + =')) { +// Check if this is a supported version +// - Must be 6.12.0 or higher +// - Must not be a 6.12.0 beta/rc version +$is_stable_6_12_or_higher = version_compare($version, '6.12.0', '>=') && !preg_match('/^6\\.12\\.0-/', $version); + +if ($is_stable_6_12_or_higher) { + echo "Running on supported version {$version}, skipping cleanup\n"; exit(0); } -echo "\n"; -echo "**********************************\n"; -echo "🧹 CLEANING UP - may take a minute\n"; -echo "**********************************\n"; +echo "Running on unsupported version {$version}, performing cleanup\n"; +echo "Running cleanup operations...\n"; +include_once("/usr/local/emhttp/plugins/dynamix.my.servers/scripts/cleanup_operations.php"); -if (file_exists("/boot/.git")) { - if (file_exists("/etc/rc.d/rc.flash_backup")) { - # stop flash backup service - echo "\nStopping flash backup service. Please wait…"; - exec("/etc/rc.d/rc.flash_backup stop &>/dev/null"); - } - if (file_exists("/usr/local/emhttp/plugins/dynamix.my.servers/include/UpdateFlashBackup.php")) { - # deactivate and delete local flash backup - echo "\nDeactivating flash backup. Please wait…"; - passthru("/usr/bin/php /usr/local/emhttp/plugins/dynamix.my.servers/include/UpdateFlashBackup.php deactivate"); - } -} - -# set "Allow Remote Access" to "No" and sign out from Unraid Connect -if ($msini !== false) { - # stop unraid-api - echo "\nStopping unraid-api. Please wait…"; - $output = shell_exec("/etc/rc.d/rc.unraid-api stop --delete 2>&1'"); - if (!$output) { - echo "Waiting for unraid-api to stop...\n"; - sleep(5); // Give it a few seconds to fully stop - } - echo "Stopped unraid-api: $output"; - - if (!empty($msini['remote']['username'])) { - $var = parse_ini_file("/var/local/emhttp/var.ini"); - $keyfile = @file_get_contents($var['regFILE']); - if ($keyfile !== false) { - echo "\nSigning out of Unraid Connect\n"; - $ch = curl_init('https://keys.lime-technology.com/account/server/unregister'); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_POST, 1); - curl_setopt($ch, CURLOPT_POSTFIELDS, ['keyfile' => @base64_encode($keyfile)]); - curl_exec($ch); - curl_close($ch); - } - } - - # remove myservers.cfg - unlink('/boot/config/plugins/dynamix.my.servers/myservers.cfg'); - - # reload nginx to disable Remote Access - echo "\n⚠️ Reloading Web Server. If this window stops updating for two minutes please close it.\n"; - exec("/etc/rc.d/rc.nginx reload &>/dev/null"); -} exit(0); ]]> @@ -529,6 +403,7 @@ preserveFilesDirs=( preserveAction() { local action="$1" local path="$2" + local preventType="$3" # preventDowngrade or skip if [[ "$action" == "move" ]]; then [[ -f "$path" ]] && mv -f "$path" "$path-" diff --git a/plugin/source/dynamix.unraid.net/install/doinst.sh b/plugin/source/dynamix.unraid.net/install/doinst.sh index 7f364eddf..4c55e4afa 100755 --- a/plugin/source/dynamix.unraid.net/install/doinst.sh +++ b/plugin/source/dynamix.unraid.net/install/doinst.sh @@ -506,3 +506,273 @@ fi ( cd usr/local/unraid-api/node_modules/@pm2/io/node_modules/.bin ; ln -sf ../semver/bin/semver.js semver ) ( cd usr/local/unraid-api/node_modules/request/node_modules/.bin ; rm -rf uuid ) ( cd usr/local/unraid-api/node_modules/request/node_modules/.bin ; ln -sf ../uuid/bin/uuid uuid ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf apollo-pbjs ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../@apollo/protobufjs/bin/pbjs apollo-pbjs ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf apollo-pbts ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../@apollo/protobufjs/bin/pbts apollo-pbts ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf blessed ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../blessed/bin/tput.js blessed ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf esbuild ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../esbuild/bin/esbuild esbuild ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf escodegen ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../escodegen/bin/escodegen.js escodegen ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf esgenerate ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../escodegen/bin/esgenerate.js esgenerate ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf esparse ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../esprima/bin/esparse.js esparse ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf esvalidate ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../esprima/bin/esvalidate.js esvalidate ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf fxparser ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../fast-xml-parser/src/cli/cli.js fxparser ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf glob ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../glob/dist/esm/bin.mjs glob ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf js-yaml ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../js-yaml/bin/js-yaml.js js-yaml ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf jsesc ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../jsesc/bin/jsesc jsesc ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf loose-envify ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../loose-envify/cli.js loose-envify ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf mime ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../mime/cli.js mime ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf mkdirp ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../mkdirp/bin/cmd.js mkdirp ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf mustache ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../mustache/bin/mustache mustache ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf needle ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../needle/bin/needle needle ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf node-which ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../which/bin/node-which node-which ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf opencollective ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../@nuxt/opencollective/bin/opencollective.js opencollective ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf parser ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../@babel/parser/bin/babel-parser.js parser ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pino ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pino/bin.js pino ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pino-pretty ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pino-pretty/bin.js pino-pretty ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pm2 ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pm2/bin/pm2 pm2 ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pm2-dev ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pm2/bin/pm2-dev pm2-dev ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pm2-docker ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pm2/bin/pm2-docker pm2-docker ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pm2-runtime ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pm2/bin/pm2-runtime pm2-runtime ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf prettier ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../prettier/bin/prettier.cjs prettier ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf relay-compiler ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../@ardatan/relay-compiler/bin/relay-compiler relay-compiler ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf resolve ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../resolve/bin/resolve resolve ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf semver ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../semver/bin/semver.js semver ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf sha.js ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../sha.js/bin.js sha.js ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf sshpk-conv ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../sshpk/bin/sshpk-conv sshpk-conv ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf sshpk-sign ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../sshpk/bin/sshpk-sign sshpk-sign ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf sshpk-verify ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../sshpk/bin/sshpk-verify sshpk-verify ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf systeminformation ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../systeminformation/lib/cli.js systeminformation ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf tsc ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../typescript/bin/tsc tsc ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf tsserver ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../typescript/bin/tsserver tsserver ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf tsx ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../tsx/dist/cli.mjs tsx ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf ua-parser-js ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../ua-parser-js/script/cli.js ua-parser-js ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf uuid ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../uuid/dist/esm/bin/uuid uuid ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf xss ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../xss/bin/xss xss ) +( cd usr/local/unraid-api/node_modules/@apollo/server/node_modules/.bin ; rm -rf uuid ) +( cd usr/local/unraid-api/node_modules/@apollo/server/node_modules/.bin ; ln -sf ../uuid/dist/bin/uuid uuid ) +( cd usr/local/unraid-api/node_modules/@pm2/agent/node_modules/.bin ; rm -rf semver ) +( cd usr/local/unraid-api/node_modules/@pm2/agent/node_modules/.bin ; ln -sf ../semver/bin/semver.js semver ) +( cd usr/local/unraid-api/node_modules/@pm2/io/node_modules/.bin ; rm -rf semver ) +( cd usr/local/unraid-api/node_modules/@pm2/io/node_modules/.bin ; ln -sf ../semver/bin/semver.js semver ) +( cd usr/local/unraid-api/node_modules/request/node_modules/.bin ; rm -rf uuid ) +( cd usr/local/unraid-api/node_modules/request/node_modules/.bin ; ln -sf ../uuid/bin/uuid uuid ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf apollo-pbjs ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../@apollo/protobufjs/bin/pbjs apollo-pbjs ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf apollo-pbts ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../@apollo/protobufjs/bin/pbts apollo-pbts ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf blessed ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../blessed/bin/tput.js blessed ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf esbuild ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../esbuild/bin/esbuild esbuild ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf escodegen ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../escodegen/bin/escodegen.js escodegen ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf esgenerate ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../escodegen/bin/esgenerate.js esgenerate ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf esparse ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../esprima/bin/esparse.js esparse ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf esvalidate ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../esprima/bin/esvalidate.js esvalidate ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf fxparser ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../fast-xml-parser/src/cli/cli.js fxparser ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf glob ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../glob/dist/esm/bin.mjs glob ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf js-yaml ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../js-yaml/bin/js-yaml.js js-yaml ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf jsesc ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../jsesc/bin/jsesc jsesc ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf loose-envify ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../loose-envify/cli.js loose-envify ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf mime ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../mime/cli.js mime ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf mkdirp ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../mkdirp/bin/cmd.js mkdirp ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf mustache ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../mustache/bin/mustache mustache ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf needle ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../needle/bin/needle needle ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf node-which ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../which/bin/node-which node-which ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf opencollective ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../@nuxt/opencollective/bin/opencollective.js opencollective ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf parser ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../@babel/parser/bin/babel-parser.js parser ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pino ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pino/bin.js pino ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pino-pretty ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pino-pretty/bin.js pino-pretty ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pm2 ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pm2/bin/pm2 pm2 ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pm2-dev ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pm2/bin/pm2-dev pm2-dev ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pm2-docker ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pm2/bin/pm2-docker pm2-docker ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pm2-runtime ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pm2/bin/pm2-runtime pm2-runtime ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf prettier ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../prettier/bin/prettier.cjs prettier ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf relay-compiler ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../@ardatan/relay-compiler/bin/relay-compiler relay-compiler ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf resolve ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../resolve/bin/resolve resolve ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf semver ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../semver/bin/semver.js semver ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf sha.js ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../sha.js/bin.js sha.js ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf sshpk-conv ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../sshpk/bin/sshpk-conv sshpk-conv ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf sshpk-sign ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../sshpk/bin/sshpk-sign sshpk-sign ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf sshpk-verify ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../sshpk/bin/sshpk-verify sshpk-verify ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf systeminformation ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../systeminformation/lib/cli.js systeminformation ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf tsc ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../typescript/bin/tsc tsc ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf tsserver ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../typescript/bin/tsserver tsserver ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf tsx ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../tsx/dist/cli.mjs tsx ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf ua-parser-js ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../ua-parser-js/script/cli.js ua-parser-js ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf uuid ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../uuid/dist/esm/bin/uuid uuid ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf xss ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../xss/bin/xss xss ) +( cd usr/local/unraid-api/node_modules/@apollo/server/node_modules/.bin ; rm -rf uuid ) +( cd usr/local/unraid-api/node_modules/@apollo/server/node_modules/.bin ; ln -sf ../uuid/dist/bin/uuid uuid ) +( cd usr/local/unraid-api/node_modules/@pm2/agent/node_modules/.bin ; rm -rf semver ) +( cd usr/local/unraid-api/node_modules/@pm2/agent/node_modules/.bin ; ln -sf ../semver/bin/semver.js semver ) +( cd usr/local/unraid-api/node_modules/@pm2/io/node_modules/.bin ; rm -rf semver ) +( cd usr/local/unraid-api/node_modules/@pm2/io/node_modules/.bin ; ln -sf ../semver/bin/semver.js semver ) +( cd usr/local/unraid-api/node_modules/request/node_modules/.bin ; rm -rf uuid ) +( cd usr/local/unraid-api/node_modules/request/node_modules/.bin ; ln -sf ../uuid/bin/uuid uuid ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf apollo-pbjs ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../@apollo/protobufjs/bin/pbjs apollo-pbjs ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf apollo-pbts ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../@apollo/protobufjs/bin/pbts apollo-pbts ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf blessed ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../blessed/bin/tput.js blessed ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf esbuild ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../esbuild/bin/esbuild esbuild ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf escodegen ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../escodegen/bin/escodegen.js escodegen ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf esgenerate ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../escodegen/bin/esgenerate.js esgenerate ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf esparse ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../esprima/bin/esparse.js esparse ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf esvalidate ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../esprima/bin/esvalidate.js esvalidate ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf fxparser ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../fast-xml-parser/src/cli/cli.js fxparser ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf glob ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../glob/dist/esm/bin.mjs glob ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf js-yaml ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../js-yaml/bin/js-yaml.js js-yaml ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf jsesc ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../jsesc/bin/jsesc jsesc ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf loose-envify ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../loose-envify/cli.js loose-envify ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf mime ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../mime/cli.js mime ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf mkdirp ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../mkdirp/bin/cmd.js mkdirp ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf mustache ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../mustache/bin/mustache mustache ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf needle ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../needle/bin/needle needle ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf node-which ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../which/bin/node-which node-which ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf opencollective ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../@nuxt/opencollective/bin/opencollective.js opencollective ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf parser ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../@babel/parser/bin/babel-parser.js parser ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pino ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pino/bin.js pino ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pino-pretty ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pino-pretty/bin.js pino-pretty ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pm2 ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pm2/bin/pm2 pm2 ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pm2-dev ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pm2/bin/pm2-dev pm2-dev ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pm2-docker ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pm2/bin/pm2-docker pm2-docker ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf pm2-runtime ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../pm2/bin/pm2-runtime pm2-runtime ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf prettier ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../prettier/bin/prettier.cjs prettier ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf relay-compiler ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../@ardatan/relay-compiler/bin/relay-compiler relay-compiler ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf resolve ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../resolve/bin/resolve resolve ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf semver ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../semver/bin/semver.js semver ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf sha.js ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../sha.js/bin.js sha.js ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf sshpk-conv ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../sshpk/bin/sshpk-conv sshpk-conv ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf sshpk-sign ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../sshpk/bin/sshpk-sign sshpk-sign ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf sshpk-verify ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../sshpk/bin/sshpk-verify sshpk-verify ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf systeminformation ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../systeminformation/lib/cli.js systeminformation ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf tsc ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../typescript/bin/tsc tsc ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf tsserver ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../typescript/bin/tsserver tsserver ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf tsx ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../tsx/dist/cli.mjs tsx ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf ua-parser-js ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../ua-parser-js/script/cli.js ua-parser-js ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf uuid ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../uuid/dist/esm/bin/uuid uuid ) +( cd usr/local/unraid-api/node_modules/.bin ; rm -rf xss ) +( cd usr/local/unraid-api/node_modules/.bin ; ln -sf ../xss/bin/xss xss ) +( cd usr/local/unraid-api/node_modules/@apollo/server/node_modules/.bin ; rm -rf uuid ) +( cd usr/local/unraid-api/node_modules/@apollo/server/node_modules/.bin ; ln -sf ../uuid/dist/bin/uuid uuid ) +( cd usr/local/unraid-api/node_modules/@pm2/agent/node_modules/.bin ; rm -rf semver ) +( cd usr/local/unraid-api/node_modules/@pm2/agent/node_modules/.bin ; ln -sf ../semver/bin/semver.js semver ) +( cd usr/local/unraid-api/node_modules/@pm2/io/node_modules/.bin ; rm -rf semver ) +( cd usr/local/unraid-api/node_modules/@pm2/io/node_modules/.bin ; ln -sf ../semver/bin/semver.js semver ) +( cd usr/local/unraid-api/node_modules/request/node_modules/.bin ; rm -rf uuid ) +( cd usr/local/unraid-api/node_modules/request/node_modules/.bin ; ln -sf ../uuid/bin/uuid uuid ) diff --git a/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/scripts/cleanup_operations.php b/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/scripts/cleanup_operations.php new file mode 100755 index 000000000..47fc3871c --- /dev/null +++ b/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/scripts/cleanup_operations.php @@ -0,0 +1,87 @@ +#!/usr/bin/php +/dev/null"); + } + if (file_exists("/usr/local/emhttp/plugins/dynamix.my.servers/include/UpdateFlashBackup.php")) { + # deactivate and delete local flash backup + echo "\nDeactivating flash backup. Please wait…"; + passthru("/usr/bin/php /usr/local/emhttp/plugins/dynamix.my.servers/include/UpdateFlashBackup.php deactivate"); + } +} + +# set "Allow Remote Access" to "No" and sign out from Unraid Connect +if ($msini !== false) { + # stop unraid-api + echo "\nStopping unraid-api. Please wait…"; + $output = shell_exec("/etc/rc.d/rc.unraid-api stop --delete 2>&1"); + if (!$output) { + echo "Waiting for unraid-api to stop...\n"; + sleep(5); // Give it a few seconds to fully stop + } + echo "Stopped unraid-api: $output"; + + if (!empty($msini['remote']['username'])) { + $var = parse_ini_file("/var/local/emhttp/var.ini"); + $keyfile = @file_get_contents($var['regFILE']); + if ($keyfile !== false) { + echo "\nSigning out of Unraid Connect\n"; + $ch = curl_init('https://keys.lime-technology.com/account/server/unregister'); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_POSTFIELDS, ['keyfile' => @base64_encode($keyfile)]); + curl_exec($ch); + curl_close($ch); + } + } + + # remove myservers.cfg + unlink('/boot/config/plugins/dynamix.my.servers/myservers.cfg'); + + # reload nginx to disable Remote Access + echo "\n⚠️ Reloading Web Server. If this window stops updating for two minutes please close it.\n"; + exec("/etc/rc.d/rc.nginx reload &>/dev/null"); +} + +exit(0); \ No newline at end of file