Initialize Clash Web source and deployment documentation
This commit is contained in:
commit
8e0fa00a73
66 files changed
+8532
No files matched your search
Executable
+22
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
[[ $EUID -eq 0 ]] || { echo 'Run on the service VM as root.' >&2; exit 1; }
|
||||
task_root=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
|
||||
task_staging=$(mktemp -d)
|
||||
trap 'rm -rf "$task_staging"' EXIT
|
||||
python3 "$task_root/scripts/fetch-rules.py" --output "$task_staging/new"
|
||||
mkdir -p "$task_staging/old"
|
||||
cp -a /var/lib/clashweb-core/rules/. "$task_staging/old/"
|
||||
install -m 0640 -o clashweb -g clashweb-core "$task_staging/new/"*.mrs /var/lib/clashweb-core/rules/
|
||||
if ! sudo -u clashweb-mihomo /usr/local/bin/mihomo -t -d /var/lib/clashweb-core -f /var/lib/clashweb-core/config.yaml; then
|
||||
cp -a "$task_staging/old/." /var/lib/clashweb-core/rules/
|
||||
echo 'Validation failed; previous rules restored.' >&2
|
||||
exit 1
|
||||
fi
|
||||
if ! systemctl restart clashweb-mihomo.service || ! systemctl is-active --quiet clashweb-mihomo.service; then
|
||||
cp -a "$task_staging/old/." /var/lib/clashweb-core/rules/
|
||||
systemctl restart clashweb-mihomo.service
|
||||
echo 'Reload failed; previous rules restored.' >&2
|
||||
exit 1
|
||||
fi
|
||||
echo 'Rule resources updated. Select a node in the UI if needed.'
|
||||
Reference in new issue
Block a user