#!/usr/bin/env sh
set -eu

maxkb=500
while [ "$#" -gt 0 ]; do
  case "$1" in
    --maxkb=*)
      maxkb=${1#--maxkb=}
      shift
      ;;
    --)
      shift
      break
      ;;
    -*)
      echo "check-added-large-files: unknown option: $1" >&2
      exit 2
      ;;
    *)
      break
      ;;
  esac
done

limit=$((maxkb * 1024))
failed=0

for file in "$@"; do
  [ -f "$file" ] || continue
  size=$(wc -c < "$file" | tr -d '[:space:]')
  if [ "$size" -gt "$limit" ]; then
    kb=$(((size + 1023) / 1024))
    echo "$file (${kb} KB) exceeds ${maxkb} KB" >&2
    failed=1
  fi
done

exit "$failed"
