#!/bin/sh
set -u
umask 077

ERRORS=0
CHECKED=0

check_file() {
  expected="$1"
  path="$2"

  CHECKED=$((CHECKED + 1))

  if [ ! -f "$path" ]; then
    printf '__HASH__ match=false missing=true expected=%s actual=MISSING path=%s\n' "$expected" "$path"
    ERRORS=$((ERRORS + 1))
    return
  fi

  actual="$(sha256sum "$path" | sed 's/[[:space:]].*$//')"

  if [ "$actual" = "$expected" ]; then
    match=true
  else
    match=false
    ERRORS=$((ERRORS + 1))
  fi

  printf '__HASH__ match=%s missing=false expected=%s actual=%s path=%s\n' "$match" "$expected" "$actual" "$path"
}

check_file d48c41014ff94cbecd6dd8a2f543b5a08c797d226c3e745756a2787340d57151 /usr/local/sbin/router-egress-health-repair-watch.sh
check_file 258ef9daf0b3f8aaf2960025e6d4d7f0c1ae30cede781badfbd6b3919ea25afc /usr/local/sbin/router-egress-emergency-decision-hook.sh
check_file bea82c260ba6006b524ef01c614848097bd231fa6d49a725baded99046fe5d11 /usr/local/sbin/router-egress-emergency-refresh.sh
check_file 6ec99e157235d811d6f0f3ab92de7f3371dc813f2478a654358982cda7ce34ce /usr/local/sbin/router-egress-hmn-plan-top5.sh
check_file 2fa6b725c5e123b7fdc3dd14747058a02415d025231054c7537d72b8edc2346f /usr/local/sbin/router-egress-hmn-rebalance-top5-apply.sh
check_file 9a546c2958c9fd44c927af3559966d1aa0ceb7a5e20f2373c7a95a31728dd0c0 /usr/local/lib/router-egress-recovery-state.sh
check_file bb047e820196c4c5cb263499ed890c782190293257a2033568015c6b19230682 /root/hmn/hmn-refresh-pool-safe.sh
check_file 195a8450fa333a50ae209be25f823873d475989bdbce1a824a86268d36c9e942 /etc/init.d/router-egress-health-repair
check_file 152fa0d45cb57ac60d34529ef0b29d32e65a2ad03845129fd7c2b41eaf787934 /etc/init.d/router-egress-emergency-decision
check_file 42ba3c0b10d8535d4100cc4e35e02bc2c0f3fe104bdedf8cf91700832d9051a8 /etc/init.d/router-egress-slots

printf '__SUMMARY__ checked=%s errors=%s\n' "$CHECKED" "$ERRORS"

exit 0
