34 lines
1.0 KiB
Bash
Executable File
34 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# VM Permission Fixer bootstrap
|
|
# 作用:下载远程主脚本、执行、清理临时文件。适合放在快捷指令 App 自动化里。
|
|
|
|
set -euo pipefail
|
|
|
|
REMOTE="${VM_FIXER_REMOTE:-https://git.orionc.me/orion/script/raw/branch/main/shortcuts/vm-permission-fixer.sh}"
|
|
TEMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/vm-permission-fixer.XXXXXX")"
|
|
TEMP="${TEMP_DIR}/vm-permission-fixer.sh"
|
|
|
|
cleanup() {
|
|
rm -rf "$TEMP_DIR"
|
|
}
|
|
trap cleanup EXIT INT TERM
|
|
|
|
PATH="/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin"
|
|
export PATH
|
|
|
|
curl -f -sSL "$REMOTE" -o "$TEMP"
|
|
chmod 700 "$TEMP"
|
|
|
|
if [[ -n "${VM_FIXER_SHA256:-}" ]]; then
|
|
actual_sha256="$(shasum -a 256 "$TEMP")"
|
|
actual_sha256="${actual_sha256%% *}"
|
|
if [[ "$actual_sha256" != "$VM_FIXER_SHA256" ]]; then
|
|
echo "远程脚本 SHA256 不匹配,已停止执行。" >&2
|
|
echo "Expected: $VM_FIXER_SHA256" >&2
|
|
echo "Actual: $actual_sha256" >&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
/usr/bin/env bash "$TEMP" "$@"
|