39 lines
1.1 KiB
Bash
Executable File
39 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PACKAGE_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
OUTPUT_DIR="${OFFLINE_OUTPUT_DIR:-$PACKAGE_DIR/autoinstall/offline-output}"
|
|
|
|
required=(
|
|
manifest/provenance.env
|
|
manifest/source-commit.txt
|
|
manifest/container-images.txt
|
|
manifest/SHA256SUMS
|
|
payload/source/aipackage/install.sh
|
|
payload/runtime/miniconda.sh
|
|
payload/runtime/ollama-runtime.tar.gz
|
|
payload/models/ollama-models.tar.gz
|
|
)
|
|
|
|
for path in "${required[@]}"; do
|
|
[ -s "$OUTPUT_DIR/$path" ] || {
|
|
echo "ERROR: required offline payload is missing or empty: $path" >&2
|
|
exit 1
|
|
}
|
|
done
|
|
|
|
for directory in payload/apt payload/containers payload/python/backend payload/python/chromadb payload/python/platform payload/models/huggingface; do
|
|
find "$OUTPUT_DIR/$directory" -type f -print -quit | grep -q . || {
|
|
echo "ERROR: required offline payload directory is empty: $directory" >&2
|
|
exit 1
|
|
}
|
|
done
|
|
|
|
(
|
|
cd "$OUTPUT_DIR"
|
|
sha256sum -c manifest/SHA256SUMS
|
|
)
|
|
|
|
echo "Offline payload integrity and completeness checks passed."
|