12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #!/bin/bash
- set -e
- set -u
- set -o pipefail
- list_origins () {
- (
- cd config/APT_snapshots.d/
- ls --color=never -1 | grep -v --line-regexp '\.placeholder'
- )
- }
- print_tagged_snapshots_pool_url () {
- origin="$1"
- version="$2"
- printf \
- 'http://tagged.snapshots.deb.tails.boum.org/%s/%s/pool/\n' \
- "$version" "$origin"
- }
- conf=/etc/apt-cacher-ng/tails-snapshots.conf
- for origin in $(list_origins) ; do
- [ "$origin" != .placeholder ] || continue
- origin_without_dashes=$(echo "$origin" | sed -e 's,-,,g')
- echo "Remap-tailssnapshots${origin_without_dashes}pool: file:tails-time-based-snapshots-$origin-pool.list file:tails-tagged-snapshots-$origin-pool.list"
- done > "$conf"
- chmod 644 "$conf"
- # Generate .list files for time-based snapshots
- for origin in $(list_origins) ; do
- list="/etc/apt-cacher-ng/tails-time-based-snapshots-$origin-pool.list"
- current_year=$(date '+%Y')
- for year in $(seq $(($current_year - 1)) $(($current_year + 1))) ; do
- for month in $(seq 1 12); do
- # We need the config file to contain _at least_ everything
- # that can possibly exists, and we don't care if it has some extra
- # lines, so to simplify we do as if each month had 31 days.
- for day in $(seq 1 31) ; do
- for n in $(seq 1 4) ; do
- printf 'http://time-based.snapshots.deb.tails.boum.org/%s/%04u%02u%02u%02u/pool/\n' \
- "$origin" "$year" "$month" "$day" "$n"
- done
- done
- done
- done \
- > "$list"
- chmod 644 "$list"
- done
- # Generate .list files for tagged snapshots
- for origin in $(list_origins) ; do
- list="/etc/apt-cacher-ng/tails-tagged-snapshots-$origin-pool.list"
- # We need the config file to contain _at least_ everything
- # that can possibly exists, and we don't care if it has some extra
- # lines, so here we try to build the smallest possible superset of
- # all realistic Tails version numbers; it could certainly be a tiny
- # bit smaller, at the cost of more assumptions (=> more risk of not
- # including some version number we'll end up using) or of more
- # code complexity (=> higher maintenance cost).
- #
- # XXX: Stretch: bump the end of the range of major versions
- for major in $(seq 2 3) ; do
- for minor in $(seq 0 32); do
- for suffix in "" alpha beta rc ; do
- for suffix_n in "" $(seq 1 8); do
- if [ -z "$suffix" ]; then
- version="${major}.${minor}"
- elif [ -z "$suffix_n" ]; then
- version="${major}.${minor}-${suffix}"
- else
- version="${major}.${minor}-${suffix}${suffix_n}"
- fi
- print_tagged_snapshots_pool_url "$origin" "$version"
- done
- done
- for emergency in $(seq 1 4) ; do
- version="${major}.${minor}.${emergency}"
- print_tagged_snapshots_pool_url "$origin" "$version"
- done
- done
- done > "$list"
- chmod 644 "$list"
- done
|