Files
config/scripts/update-debian.sh
2026-01-28 20:34:48 +00:00

74 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# Script to generate updated Debian Live package definition
# Usage: ./update-debian.sh <flavor>
# flavor: standard, xfce, kde, gnome, etc.
SHA256SUMS_URL="https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/SHA256SUMS"
if [[ $# -ne 1 ]]; then
echo "Usage: $0 <flavor>" >&2
echo " flavor: standard, xfce, kde, gnome, etc." >&2
exit 1
fi
FLAVOR="$1"
# Download SHA256SUMS file
SHA256SUMS_CONTENT=$(curl -s "$SHA256SUMS_URL")
if [[ -z "$SHA256SUMS_CONTENT" ]]; then
echo "Error: Could not download SHA256SUMS file" >&2
exit 1
fi
# Extract version from any filename in SHA256SUMS
VERSION=$(echo "$SHA256SUMS_CONTENT" | \
grep -oP 'debian-live-\K[\d.]+(?=-amd64-\w+\.iso)' | \
head -n1)
if [[ -z "$VERSION" ]]; then
echo "Error: Could not determine Debian version from SHA256SUMS" >&2
exit 1
fi
# Extract hash from SHA256SUMS for this flavor
ISO_FILENAME="debian-live-${VERSION}-amd64-${FLAVOR}.iso"
HASH_HEX=$(echo "$SHA256SUMS_CONTENT" | \
grep " ${ISO_FILENAME}$" | \
awk '{print $1}')
if [[ -z "$HASH_HEX" ]]; then
echo "Error: Could not find hash for $ISO_FILENAME in SHA256SUMS" >&2
echo "" >&2
echo "Available ISOs:" >&2
echo "$SHA256SUMS_CONTENT" | grep '\.iso$' | sed 's/^/ /' >&2
exit 1
fi
# Convert hex hash to SRI format
HASH_SRI=$(nix-hash --type sha256 --to-sri "$HASH_HEX")
# Output the Nix code block
cat <<EOF
mrescue-debian-${FLAVOR} = mkDebianLive {
flavor = "${FLAVOR}";
version = "${VERSION}";
hash = "${HASH_SRI}";
};
EOF
echo ""
echo "Checking mirror availability..." >&2
MIRROR_URL="https://dl.jakstys.lt/boot/debian-live-${VERSION}-amd64-${FLAVOR}.iso"
if curl -sI "$MIRROR_URL" | head -1 | grep -q "200"; then
echo "✓ File available on mirror" >&2
else
echo "⚠ Warning: File not found on mirror!" >&2
echo ""
echo "To upload to mirror, run:" >&2
echo " ssh fwminex sh -c 'cd /var/www/dl/boot && wget https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-${VERSION}-amd64-${FLAVOR}.iso'" >&2
echo ""
fi