Files
minideb/buildall
T
2020-07-02 10:38:56 +00:00

61 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# Build a minideb image for each supported dist
set -e
set -u
set -o pipefail
DISTS="jessie
stretch
buster
unstable
"
DISTS_WITH_SNAPSHOT="buster"
get_latest_month_query(){
local -r snapshot_tmp_dir=$(mktemp -d)
local -r snapshot_archive_tmp_file="${snapshot_tmp_dir}/archive.html"
mkdir -p "${snapshot_tmp_dir}"
! curl -sSfL "https://snapshot.debian.org/archive/debian/" > "$snapshot_archive_tmp_file" && echo "Error when accessing https://snapshot.debian.org/archive/debian/" && return 1
local -r month_query_regex="(\?year=\d\d\d\d&month=\d+)"
local -r month_query=$(grep -Po "${month_query_regex}" "${snapshot_archive_tmp_file}" | tail -1)
[[ -z "$month_query" ]] && echo "Not found snapshots using the following regex: ${month_query_regex}" && return 1
echo "$month_query"
}
get_latest_debian_snapshot_id() {
local -r snapshot_tmp_dir=$(mktemp -d)
local -r snapshot_list_tmp_file="${snapshot_tmp_dir}/month-snapshots.html"
mkdir -p "${snapshot_tmp_dir}"
! month_query=$(get_latest_month_query) && return 1
! curl -sSfL "https://snapshot.debian.org/archive/debian/$month_query" > "$snapshot_list_tmp_file" && echo "Not found snapshots for these parameters: query=${month_query}" && return 1
local -r snapshot_id_regex="(\d+T.*Z)"
local -r snapshot_id=$(grep -Po "${snapshot_id_regex}" "${snapshot_list_tmp_file}" | tail -1)
[[ -z "$snapshot_id" ]] && echo "Not found snapshot id using the following regex: ${snapshot_id_regex}" && return 1
echo "$snapshot_id"
}
for DIST in $DISTS; do
./buildone "$DIST"
done
! snapshot_id=$(get_latest_debian_snapshot_id) && exit 1
for DIST in $DISTS_WITH_SNAPSHOT; do
./buildone "$DIST" "$snapshot_id"
done
mkdir -p build
echo "$snapshot_id" > build/snapshot_id