#!/usr/bin/env bash
set -euo pipefail

if [[ $# -ne 1 ]]; then
  printf 'usage: %s IMAGE_REFERENCE\n' "$0" >&2
  exit 2
fi

IMAGE_REFERENCE=$1
timeout 300 podman run --rm \
  --network none \
  --read-only \
  --tmpfs /workspace:rw,size=2g,mode=1777 \
  --entrypoint /bin/sh \
  "$IMAGE_REFERENCE" \
  -eu -c '
    /bin/mkdir -p /workspace/repo /workspace/home/.cache/pnpm
    cp /opt/factory-dependencies/overdeck/input/package.json \
      /opt/factory-dependencies/overdeck/input/pnpm-lock.yaml \
      /opt/factory-dependencies/overdeck/input/pnpm-workspace.yaml \
      /opt/factory-dependencies/overdeck/input/.npmrc \
      /workspace/repo/
    cp -R /opt/factory-dependencies/overdeck/pnpm-store /workspace/.pnpm-store
    /bin/cp /opt/factory-dependencies/overdeck/pnpm-cache/lockfile-verified.jsonl \
      /workspace/home/.cache/pnpm/
    XDG_CACHE_HOME=/workspace/home/.cache HOME=/workspace/home pnpm install \
      --dir /workspace/repo \
      --frozen-lockfile \
      --offline \
      --fetch-retries 0 \
      --store-dir /workspace/.pnpm-store
  '
printf 'FACTORY_IMAGE_OFFLINE_INSTALL image=%s network=none root=read-only result=pass\n' \
  "$IMAGE_REFERENCE"
