Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/Attic/update-website-old
diff options
context:
space:
mode:
Diffstat (limited to 'Attic/update-website-old')
-rwxr-xr-xAttic/update-website-old334
1 files changed, 0 insertions, 334 deletions
diff --git a/Attic/update-website-old b/Attic/update-website-old
deleted file mode 100755
index 95f12ad..0000000
--- a/Attic/update-website-old
+++ /dev/null
@@ -1,334 +0,0 @@
-#!/bin/bash
-
-set -e
-
-mirror_dir='/mnt/archlinux32'
-website_dir='/usr/src/archlinux32/archweb32'
-
-usage() {
- >&2 echo ''
- >&2 echo 'update-website: update download, torrent, magnet links on'
- >&2 echo ' the Arch32 website'
- >&2 echo ''
- >&2 echo 'possible options:'
- >&2 echo ' -h|--help: Show this help and exit.'
- >&2 echo ' --magnet-i686 $link:'
- >&2 echo ' Set archiso-i686 magnet link to $link.'
- >&2 echo ' --magnet-dual $link:'
- >&2 echo ' Set archiso-dual magnet link to $link.'
- >&2 echo ' --torrent-seed-i686 $link:'
- >&2 echo ' Set archiso-i686 torrent link to $link.'
- >&2 echo ' --torrent-seed-dual $link:'
- >&2 echo ' Set archiso-dual torrent link to $link.'
- >&2 echo ' --website-dir $dir:'
- >&2 echo ' Set website-dir to $dir.'
- >&2 echo ' --mirror-dir $dir:'
- >&2 echo ' Set mirror-dir to $dir.'
- >&2 echo ' --update-iso:'
- >&2 echo ' Update information about iso, too.'
- [ -z "$1" ] && exit 1 || exit "$1"
-}
-
-eval set -- "$(
- getopt -o h \
- --long help \
- --long magnet-i686: \
- --long magnet-dual: \
- --long torrent-seed-i686: \
- --long torrent-seed-dual: \
- --long mirror-dir: \
- --long website-dir: \
- --long update-iso \
- -n "$(basename "$0")" -- "$@" || \
- echo usage
-)"
-
-tmp_dir="$(mktemp -d)"
-cleanup() {
- if mountpoint -q "${tmp_dir}"; then
- sudo umount "${tmp_dir}"
- fi
- rm -rf --one-file-system "${tmp_dir}"
-}
-trap cleanup EXIT
-
-while [ $# -gt 0 ]; do
- case "$1" in
- '--magnet-i686')
- if [ -s "${tmp_dir}/magnet.i686" ]; then
- printf 'Option %s given multiple times.\n' "$1"
- usage
- fi
- shift
- echo "$1" | \
- tr -d '\n' > \
- "${tmp_dir}/magnet.i686"
- ;;
- '--magnet-dual')
- if [ -s "${tmp_dir}/magnet.dual" ]; then
- printf 'Option %s given multiple times.\n' "$1"
- usage
- fi
- shift
- echo "$1" | \
- tr -d '\n' > \
- "${tmp_dir}/magnet.dual"
- ;;
- '--torrent-seed-i686')
- if [ -s "${tmp_dir}/torrent-seed.i686" ]; then
- printf 'Option %s given multiple times.\n' "$1"
- usage
- fi
- shift
- echo "$1" | \
- tr -d '\n' > \
- "${tmp_dir}/torrent-seed.i686"
- ;;
- '--torrent-seed-dual')
- if [ -s "${tmp_dir}/torrent-seed.dual" ]; then
- printf 'Option %s given multiple times.\n' "$1"
- usage
- fi
- shift
- echo "$1" | \
- tr -d '\n' > \
- "${tmp_dir}/torrent-seed.dual"
- ;;
- '--mirror-dir')
- if [ -s "${tmp_dir}/mirror_dir.set" ]; then
- printf 'Option %s given multiple times.\n' "$1"
- usage
- fi
- shift
- mirror_dir="$1"
- echo "$mirror_dir" > "${tmp_dir}/mirror_dir.set"
- ;;
- '--website-dir')
- if [ -s "${tmp_dir}/website_dir.set" ]; then
- printf 'Option %s given multiple times.\n' "$1"
- usage
- fi
- shift
- website_dir="$1"
- echo "$website_dir" > "${tmp_dir}/website_dir.set"
- ;;
- '--update-iso')
- if [ -s "${tmp_dir}/update_iso.set" ]; then
- printf 'Option %s given multiple times.\n' "$1"
- usage
- fi
- echo "true" > "${tmp_dir}/update_iso.set"
- ;;
- '--help'|'-h')
- usage 0
- ;;
- '--')
- shift
- break
- ;;
- *)
- >&2 printf 'Whoops, option "%s" is not yet implemented!\n' "$1"
- exit 42
- ;;
- esac
- shift
-done
-
-if [ $# -gt 0 ]; then
- >&2 echo 'Too many arguments.'
- exit 2
-fi
-
-(
- printf ' <div id="download-mirrors">\n'
- curl -Ss 'https://archlinux32.org/mirrorlist/?country=all&hash='"$(
- head -c 24 /dev/urandom | \
- base64 -w0
- )" | \
- sed '
- 0,/^$/d
- /^$/d
- /^## /{
- s|^## |\n </ul>\n\n <h5>|
- s|$|</h5>\n\n <ul>\n|
- '"$(
- while read -r flag country; do
- printf \
- 's|<h5>%s</h5>|<h5><span class="fam-flag fam-flag-%s" title="%s"></span> %s</h5>|\n' \
- "${country}" \
- "${flag}" \
- "${country}" \
- "${country}"
- done < \
- "${0%/*}/flag-names"
- )"'
- }
- /^#Server = /{
- s|^#Server = \(.*//\)\([^/]*\)\(/.*\)\$arch/\$repo/\?$|'"$(
- printf \
- ' %s\\n' \
- '<li><a href="\1\2\3archisos/"' \
- ' title="Download from \1\2\3">\2</a></li>'
- )"'|
- }
- ' | \
- sed '
- 0,/<\/ul>/d
- '
- printf ' </ul>\n\n'
- printf ' </div>\n'
-) | \
- sed -i '
- :emptyLines
- /^\n*$/{
- N
- bemptyLines
- }
- /^\(\s*\n\)*\s*<div id="download-mirrors">$/{
- :a
- s|^.*</div>||
- tb
- $!N
- ba
- :b
- r /dev/stdin
- }
- ' "${website_dir}/download/index.html"
-
-latest_iso_date="$(
- ls "${mirror_dir}/archisos" | \
- grep '^archlinux32-[0-9.]\+-\(dual\|i.86\)\.iso$' | \
- sed 's@^archlinux32-\([0-9.]\+\)-\(dual\|i.86\)\.iso$@\1@' | \
- sort -k1,1 -u | \
- tail -n1
-)"
-
-declare -A desc
-desc['i686']='i686 only'
-# desc['dual']='dual bootable'
-
-for arch in "${!desc[@]}"; do
- if [ ! -s "${tmp_dir}/magnet.${arch}" ]; then
- continue
- fi
- if ! tr '&' '\n' < \
- "${tmp_dir}/magnet.${arch}" | \
- grep -qxF "dn=archlinux32-${latest_iso_date}-${arch}.iso"; then
- >&2 printf 'Magnet link for %s is not for %s, skipping.\n' "${arch}" "archlinux32-${latest_iso_date}-${arch}.iso"
- continue
- fi
- sed -i '
- /<li><a href="magnet:?.*-'"${arch}"'\.iso/ s/href="[^"]\+"/href="'"$(sed 's|&|\\&|g' "${tmp_dir}/magnet.${arch}")"'"/
- /title="Magnet link">Magnet link for \S\+ ('"${desc["${arch}"]}"')/ s/>Magnet link for \S\+ />Magnet link for '"${latest_iso_date}"' /
- ' "${website_dir}/download/index.html"
-done
-
-for arch in "${!desc[@]}"; do
- if [ ! -s "${tmp_dir}/torrent-seed.${arch}" ]; then
- continue
- fi
- if ! grep -qF "archlinux32-${latest_iso_date}-${arch}" "${tmp_dir}/torrent-seed.${arch}"; then
- >&2 printf 'Torrent seed for %s is not for %s, skipping.\n' "${arch}" "archlinux32-${latest_iso_date}-${arch}.iso"
- continue
- fi
- sed -i '
- /<li><a href="http.*-'"${arch}"'\.iso.torrent/ s/href="[^"]\+"/href="'"$(sed -e 's_/_\\/_g' "${tmp_dir}/torrent-seed.${arch}")"'"/
- /title="Download torrent">Torrent for \S\+ ('"${desc["${arch}"]}"')/ s/>Torrent for \S\+ />Torrent for '"${latest_iso_date}"' /
- ' "${website_dir}/download/index.html"
-done
-
-if [ ! -s "${tmp_dir}/update_iso.set" ]; then
- exit
-fi
-
-unset kernels
-unset sizes
-declare -A sizes
-declare -A md5
-declare -A sha512
-
-for arch in "${!desc[@]}"; do
- iso="${mirror_dir}/archisos/archlinux32-${latest_iso_date}-${arch}.iso"
- if [ ! -f "${iso}" ]; then
- >&2 echo "Can't find iso to arch ${arch}."
- exit 1
- fi
- sudo mount -o loop,ro "${iso}" "${tmp_dir}"
- kernels="$(
- printf '%s\n' ${kernels} $(
- find "${tmp_dir}/arch" \
- -maxdepth 1 \
- -name 'pkglist.*.txt' \
- -not -name 'pkglist.x86_64.txt' \
- -execdir cat {} \; \
- | sed '
- s/^linux\s\+\([^-]\+-[^-]\+\)$/\1/
- t
- d
- '
- ) | \
- sort -u
- )"
- sudo umount "${tmp_dir}"
- sizes["${arch}"]="$(
- printf 'scale=1; %s/1024/1024\n' "$(stat -c'%s' "${iso}")" | \
- bc
- )"
- md5["${arch}"]="$(
- grep "\s${iso##*/}\$" "${mirror_dir}/archisos/md5sums" | \
- awk '{print $1}'
- )"
- sha512["${arch}"]="$(
- grep "\s${iso##*/}\$" "${mirror_dir}/archisos/sha512sums" | \
- awk '{print $1}'
- )"
- sign_keys="$(
- printf '%s\n' ${sign_keys} $(
- gpg --status-fd=1 --verify "${iso}.sig" "${iso}" 2> /dev/null | \
- grep '^\[GNUPG:] VALIDSIG [0-9A-F]\+ ' | \
- cut -d' ' -f3
- ) | \
- sort -u
- )"
-done
-
-if [ $(echo "${kernels}" | grep -c '\S') -ne 1 ]; then
- >&2 echo 'Not exactly one kernel on the iso:'
- >&2 echo "${kernels}"
- exit 1
-fi
-
-if [ $(echo "${sign_keys}" | grep -c '\S') -ne 1 ]; then
- >&2 echo 'Not exactly one key used for signing the iso:'
- >&2 echo "'${sign_keys}'"
- exit 1
-fi
-
-if [ "${sign_keys}" != '33CA3597B0D161AAE4173F65C17F1214114574A4' ]; then
- >&2 printf 'Isos are signed with key %s instead of %s.\n' \
- "${sign_keys}" \
- '33CA3597B0D161AAE4173F65C17F1214114574A4'
- exit 1
-fi
-
-values=(
- 'Current Release' "${latest_iso_date}"
- 'Included Kernel' "${kernels}"
- 'PGP Key' '<a href="http://www.archlinux32.org/buildmaster/gpg-keys.php?fp='"${sign_keys}"'">'"${sign_keys}"'</a>'
-)
-for arch in 'i686' 'dual'; do
- values+=(
- "ISO Size (${desc["${arch}"]})" "${sizes["${arch}"]} MB"
- "MD5 (${desc["${arch}"]})" "${md5["${arch}"]}"
- "SHA512 (${desc["${arch}"]})" "${sha512["${arch}"]}"
- )
-done
-
-sed -i "$(
- printf '/%s:/s|</strong>.*</li>|</strong> %s</li>|\n' "${values[@]}"
- printf '/archlinux32-[0-9.]\+-%s\.iso\.sig/s@archlinux32-[0-9.]\+-%s\.iso\.sig@archlinux32-%s-%s.iso.sig@\n' \
- 'i686' 'i686' "${latest_iso_date}" 'i686' \
- 'dual' 'dual' "${latest_iso_date}" 'dual'
-)
-" \
- "${website_dir}/download/index.html"