Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/al32-mktorrent.sh
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2022-02-05 14:16:02 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2022-02-05 14:16:02 +0100
commita132f6d3c4773d816cdc64b3e8539a1a24177530 (patch)
tree0d6511ab9b3f82e256e3aad19faa5130e42dc106 /al32-mktorrent.sh
parent24d641d2acbbb320fa69fbfd6bf75fda2b3e78d9 (diff)
added a BUGS file
Diffstat (limited to 'al32-mktorrent.sh')
-rwxr-xr-xal32-mktorrent.sh165
1 files changed, 0 insertions, 165 deletions
diff --git a/al32-mktorrent.sh b/al32-mktorrent.sh
deleted file mode 100755
index 969ad1b..0000000
--- a/al32-mktorrent.sh
+++ /dev/null
@@ -1,165 +0,0 @@
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-#! /bin/bash
-set -euo pipefail
-
-function join_by { local IFS="$1"; shift; echo "$*"; }
-
-usage () {
- echo "Usage: $0 [-d date] [-w webdir] [-t hefurdir] [arch...]"
-}
-
-fg_green="\033[32m"
-fg_red="\033[31m"
-fg_blue="\033[34m"
-fg_reset="\033[0m"
-fg_bold="\033[1m"
-
-MIRRORLIST_FILE="https://git.archlinux32.org/packages/plain/core/pacman-mirrorlist/mirrorlist"
-
-function create_torrent_for_arch () {
- declare -a available_mirrors
- mirrorlist="$(curl -f "$MIRRORLIST_FILE" 2>/dev/null | grep Server | cut -d '=' -f 2 | sed -e 's/\s//g;s_$arch/$repo_archisos/_')"
-
- if [ "$#" -eq 0 ] ; then
- echo "No architecture specified, selecting 'i686'"
- arch="i686"
- elif [ "$#" -eq 1 ] ; then
- echo "Selecting architecture '$1'"
- arch="$1"
- else
- usage
- echo "Too many arguments, exiting" >&2
- exit 1
- fi
-
- iso_string="archlinux32-$iso_date-$arch.iso"
-
- available_mirrors=($mirrorlist)
-
- if [ ! -f "$iso_string" ] ; then
- echo -e "$fg_reset${fg_bold}Downloading iso...$fg_reset"
- curl -f -O "${available_mirrors[0]}$iso_string"
- else
- echo -e "$fg_reset${fg_bold}Reusing already downloaded iso...$fg_reset"
- fi
-
-
- echo -e "$fg_reset${fg_bold}Downloading verification files...$fg_reset"
- if [ ! -f "$iso_string.sig" ] ; then
- curl -O "${available_mirrors[0]}$iso_string.sig"
- fi
- if [ ! -f "sha512sums" ] ; then
- curl -O "${available_mirrors[0]}sha512sums"
- fi
-
- echo -n -e "$fg_reset${fg_bold}Checking PGP signature...$fg_reset "
- gpg --verify "$iso_string.sig" "$iso_string" || exit 100
- echo -e "$fg_reset${fg_green}OK"
-
- echo -e "$fg_reset${fg_bold}Checking SHA512 sums...$fg_reset"
- sha512sum --ignore-missing --check sha512sums || exit 101
-
- echo -e "$fg_reset${fg_bold}Create torrent file...$fg_reset"
- if [ -f "$iso_string.torrent" ] ; then
- rm "$iso_string.torrent"
- fi
- mktorrent --announce=http://archlinux32.org:6969/announce --web-seed="$(join_by ',' "${available_mirrors[@]}")" "$iso_string"
-
- echo -e "$fg_reset${fg_bold}Create magnet link...$fg_reset"
- magnet_link="$(transmission-show --magnet "$iso_string.torrent")"
- "${0%/*}/update-website" --magnet-"$arch" "$magnet_link"
- echo "$magnet_link"
-
- echo -e "$fg_reset${fg_bold}Create RSS feed files...$fg_reset"
- python "${0%/*}/magnet2feed.py" "$magnet_link" "$iso_date"
-}
-
-function upload_file_to_remote_dir {
- if [ -f "$1" ] && [ -n "$2" ] ; then
- echo -e "$fg_reset${fg_bold}Uploading file$fg_reset ${fg_blue}$1$fg_reset ${fg_bold}to$fg_reset ${fg_blue}$2$fg_reset $fg_bold...$fg_reset"
- scp "$1" "$2"
- fi
-}
-
-### Check for if required programs are present
-
-which mktorrent 2>&1 >/dev/null || (
- echo "Missing mktorrent"
- exit 1
-)
-
-python -c "import feedgenerator" 2>/dev/null || (
- echo "Missing python module feedgenerator"
- exit 1
-)
-
-which transmission-show 2>&1 >/dev/null || (
- echo "Missing transmission-show"
- exit 1
-)
-
-### Actual program
-
-declare -a architectures=("i686")
-iso_date=''
-web_dir=''
-hefur_dir=''
-
-while getopts "d:w:t:h" o; do
- case "${o}" in
- d)
- iso_date=${OPTARG}
- ;;
- t)
- hefur_dir=${OPTARG}
- ;;
- w)
- web_dir=${OPTARG}
- ;;
- h)
- usage
- exit
- ;;
- *)
- echo "$0: unknown option ${o}" >&2
- usage
- ;;
- esac
-done
-shift $((OPTIND-1))
-
-if [ "$#" -gt 0 ] ; then
- architectures=($@)
-fi
-
-[ -z "$iso_date" ] && read -r -p "Date of the ISO: " iso_date
-
-for a in "${architectures[@]}" ; do
- create_torrent_for_arch "$a"
-done
-
-for a in "${architectures[@]}" ; do
- torrent_filename="archlinux32-$iso_date-$a.iso.torrent"
- if [ -n "$web_dir" ] ; then
- feed_filename="feed_$a.rss"
- upload_file_to_remote_dir "$torrent_filename" "$web_dir"
- upload_file_to_remote_dir "$feed_filename" "$web_dir"
- fi
- if [ -n "$hefur_dir" ] ; then
- upload_file_to_remote_dir "$torrent_filename" "$hefur_dir"
- fi
-done
-
-# vim: set ts=4 sw=4: