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

echo "==> Generating vendored dependency tree (./vendor)"
cargo vendor vendor >/dev/null

echo "==> Writing local offline config (.cargo-vendored/config.toml)"
mkdir -p .cargo-vendored
cat > .cargo-vendored/config.toml <<'CFG'
# Generated by scripts/vendor.sh
[source.crates-io]
replace-with = "vendored-sources"

[source.vendored-sources]
directory = "vendor"

[net]
offline = true
CFG

cat <<'MSG'

Vendoring complete.

To build offline using the vendored sources, run from the repo root:

  CARGO_HOME="$PWD/.cargo-vendored" cargo build --locked
  CARGO_HOME="$PWD/.cargo-vendored" cargo test --locked
  CARGO_HOME="$PWD/.cargo-vendored" cargo install --path . --locked

This avoids any network access and uses ./vendor exclusively.
MSG

