Fix kill switch not cleared on reinstall; guard midclt delete; tighten sitecustomize imports
install.sh: running install.sh after a recover.sh left /data/truecloud-patch/disabled in place, so apply.sh silently skipped all patching and middlewared restarted without the patch. Clear the kill switch file before running apply.sh. uninstall.sh: midclt initshutdownscript.delete was unguarded under set -euo pipefail, so a delete failure (already-removed entry, transient API error) aborted the script before sitecustomize.py was cleaned up or /data/truecloud-patch/ was removed. Now guarded with an if/else that warns and continues. sitecustomize.py: move importlib.machinery/.util imports inside the if block in find_spec so they only execute when intercepting our two target modules, not on every module import across the whole process. In _install(), import os before importlib.util so the kill switch check (cheap) runs before the importlib import (slightly heavier on first use). Remove the unused orig variable in _patch_restic. patch_ui.py: add explicit encoding="utf-8" to both open() calls. errors="replace" on read so malformed bytes in a bundle don't silently skip a candidate file.
This commit is contained in:
+5
-2
@@ -32,8 +32,11 @@ for s in json.load(sys.stdin):
|
||||
|
||||
if [ -n "$IDS" ]; then
|
||||
for id in $IDS; do
|
||||
midclt call initshutdownscript.delete "$id" > /dev/null
|
||||
echo " Removed initshutdownscript id=$id"
|
||||
if midclt call initshutdownscript.delete "$id" > /dev/null; then
|
||||
echo " Removed initshutdownscript id=$id"
|
||||
else
|
||||
echo " WARNING: could not delete id=$id (already gone?)"
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo " No entry found (already removed or never installed)."
|
||||
|
||||
Reference in New Issue
Block a user