#!/nix/store/yisa2lg79zcvgk4ck4yr6r0lz6j63hs3-bash-interactive-5.3p9/bin/bash
set -euo pipefail
out=$1
fix=$2
ld=$3
glibc=$4
leita=$5
home=$6
data=$7
config=$8
cache=$9
state=${10}
runtime=${11}
shift 11
export HOME="$home"
export XDG_DATA_HOME="$data"
export XDG_CONFIG_HOME="$config"
export XDG_CACHE_HOME="$cache"
export XDG_STATE_HOME="$state"
export XDG_RUNTIME_DIR="$runtime"
export PATH=/run/current-system/sw/bin
unset LEITA_LICENCE_KEY LEITA_LICENSE LEITA_COLOR LEITA_LICENCE
cg=$(awk -F: 'NR==1 {print $3}' /proc/self/cgroup)
mem=$(cat "/sys/fs/cgroup$cg/memory.max")
swap=$(cat "/sys/fs/cgroup$cg/memory.swap.max")
cpu=$(cat "/sys/fs/cgroup$cg/cpu.max")
pids=$(cat "/sys/fs/cgroup$cg/pids.max")
io=$(cat "/sys/fs/cgroup$cg/io.max")
{
  printf 'when %s\n' "$(date -u +%Y-%m-%dT%H:%M:%S%z)"
  printf 'cgroup %s\n' "$cg"
  printf 'memory.max %s\n' "$mem"
  printf 'memory.swap.max %s\n' "$swap"
  printf 'cpu.max %s\n' "$cpu"
  printf 'pids.max %s\n' "$pids"
  printf 'io.max %s\n' "$io"
} > "$out/cgroup-before.txt"
ok=1
[ "$mem" = "134217728" ] || ok=0
[ "$swap" = "0" ] || ok=0
[ "$cpu" = "25000 100000" ] || ok=0
[ "$pids" = "64" ] || ok=0
printf '%s\n' "$io" | grep -q 'rbps=8388608' || ok=0
printf '%s\n' "$io" | grep -q 'wbps=8388608' || ok=0
if [ "$ok" != 1 ]; then
  printf 'caps-not-live\n' >> "$out/cgroup-before.txt"
  exit 2
fi
printf 'caps-live-before-exec\n' >> "$out/cgroup-before.txt"
set +e
"$ld" --library-path "$glibc" "$leita" --gentle --color never --no-history --whole --top 20 \
  --report "$out/scan.json" --format json "$fix" > "$out/scan.summary" 2> "$out/scan.err"
rc=$?
set -e
printf '%s\n' "$rc" > "$out/scan.rc"
exit "$rc"
