83 lines
2.2 KiB
Bash
Executable File
83 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
cd "$ROOT_DIR"
|
|
|
|
KIT_DIR="install-kit-awindows-20260427-211240"
|
|
TARGET_ROOT="${CARGO_TARGET_DIR:-$ROOT_DIR/adk-rust/target}"
|
|
RUST_BIN="${CHECK_INSTALL_KIT_VS_REPO_RUST:-}"
|
|
|
|
rust_candidates=()
|
|
if [[ -n "$RUST_BIN" ]]; then
|
|
rust_candidates+=("$RUST_BIN")
|
|
fi
|
|
rust_candidates+=(
|
|
"$TARGET_ROOT/release/check-install-kit-vs-repo"
|
|
"$ROOT_DIR/adk-rust/target/release/check-install-kit-vs-repo"
|
|
"/usr/local/bin/check-install-kit-vs-repo"
|
|
)
|
|
|
|
for candidate in "${rust_candidates[@]}"; do
|
|
if [[ -x "$candidate" ]]; then
|
|
exec "$candidate" --root "$ROOT_DIR" --kit-dir "$KIT_DIR" "$@"
|
|
fi
|
|
done
|
|
|
|
python3 - <<'PY'
|
|
from pathlib import Path
|
|
import hashlib
|
|
import sys
|
|
|
|
root=Path('.')
|
|
kit=Path('install-kit-awindows-20260427-211240')
|
|
if not kit.exists():
|
|
raise SystemExit('Install kit directory not found')
|
|
|
|
def sha(path: Path) -> str:
|
|
return hashlib.sha256(path.read_bytes()).hexdigest()
|
|
|
|
all_compared=[]
|
|
mismatches=[]
|
|
missing_in_repo=[]
|
|
allowed_kit_only_prefixes=('server-configs-' ,)
|
|
allowed_kit_only_files={'README-INSTALL-KIT.txt'}
|
|
|
|
for kp in sorted(p for p in kit.rglob('*') if p.is_file() and p.name!='MANIFEST.txt'):
|
|
rel=kp.relative_to(kit)
|
|
rp=root/rel
|
|
if not rp.exists():
|
|
rel_str=str(rel)
|
|
if rel_str in allowed_kit_only_files or rel_str.startswith(allowed_kit_only_prefixes):
|
|
continue
|
|
missing_in_repo.append(str(rel))
|
|
continue
|
|
all_compared.append(str(rel))
|
|
if sha(kp)!=sha(rp):
|
|
mismatches.append(str(rel))
|
|
|
|
ps_mismatches=[
|
|
p for p in mismatches
|
|
if p.startswith('windows/') and p.endswith(('.ps1', '.psm1', '.psd1'))
|
|
]
|
|
|
|
print(f'Compared files: {len(all_compared)}')
|
|
print(f'Missing in repo: {len(missing_in_repo)}')
|
|
print(f'Mismatched content: {len(mismatches)}')
|
|
if missing_in_repo:
|
|
print('--- Missing in repo ---')
|
|
for p in missing_in_repo:
|
|
print(p)
|
|
if mismatches:
|
|
print('--- Mismatches ---')
|
|
for p in mismatches:
|
|
print(p)
|
|
print(f'PowerShell mismatches: {len(ps_mismatches)}')
|
|
if ps_mismatches:
|
|
print('--- PowerShell mismatches ---')
|
|
for p in ps_mismatches:
|
|
print(p)
|
|
if missing_in_repo or mismatches:
|
|
sys.exit(1)
|
|
PY
|