forked from sig_core/toolkit
Merge branch 'devel' into 'main'
Devel See merge request release-engineering/public/toolkit!9
This commit is contained in:
commit
12db566eb6
35
sync/common
35
sync/common
@ -1,5 +1,13 @@
|
|||||||
# To be sourced by scripts to use
|
# To be sourced by scripts to use
|
||||||
|
|
||||||
|
# Variables that can be overriden should be noted with optional context. It is
|
||||||
|
# expected that these values are here in this file (per variable or per set):
|
||||||
|
#
|
||||||
|
# * Allowed
|
||||||
|
# * Allowed with caveats
|
||||||
|
# * Not Allowed
|
||||||
|
# * Required
|
||||||
|
|
||||||
# Temporary probably. This makes it so if RLVER=... is called before the script
|
# Temporary probably. This makes it so if RLVER=... is called before the script
|
||||||
# it will set the version for the variables to call up. This was easier than
|
# it will set the version for the variables to call up. This was easier than
|
||||||
# creating duplicates of a bunch of stuff. Default version is 8.
|
# creating duplicates of a bunch of stuff. Default version is 8.
|
||||||
@ -7,19 +15,23 @@ if [ -z "$RLVER" ]; then
|
|||||||
export RLVER=8
|
export RLVER=8
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Override: Not Allowed
|
||||||
STAGING_ROOT="/mnt/repos-staging"
|
STAGING_ROOT="/mnt/repos-staging"
|
||||||
PRODUCTION_ROOT="/mnt/repos-production"
|
PRODUCTION_ROOT="/mnt/repos-production"
|
||||||
|
|
||||||
|
# Override: Not Allowed
|
||||||
# relative to ${ENV}_ROOT
|
# relative to ${ENV}_ROOT
|
||||||
CATEGORY_STUB="mirror/pub/rocky"
|
CATEGORY_STUB="mirror/pub/rocky"
|
||||||
|
|
||||||
# should be overriden in other commons
|
# Override: Required
|
||||||
#RELEASE_DIR="${CATEGORY_STUB}/${REVISION}${APPEND_TO_DIR}"
|
#RELEASE_DIR="${CATEGORY_STUB}/${REVISION}${APPEND_TO_DIR}"
|
||||||
|
|
||||||
# Define arches we support
|
# Define arches we support
|
||||||
|
# Override: Not Allowed
|
||||||
ARCHES=(x86_64 aarch64)
|
ARCHES=(x86_64 aarch64)
|
||||||
|
|
||||||
#Source Major common
|
# Source Major common
|
||||||
|
# Override: Not Allowed
|
||||||
test -f "$(dirname "$0")/common_${RLVER}" && source "$(dirname "$0")/common_${RLVER}"
|
test -f "$(dirname "$0")/common_${RLVER}" && source "$(dirname "$0")/common_${RLVER}"
|
||||||
if [ "$?" -ne 0 ]; then
|
if [ "$?" -ne 0 ]; then
|
||||||
echo "Could not source common_${RLVER}"
|
echo "Could not source common_${RLVER}"
|
||||||
@ -27,4 +39,23 @@ if [ "$?" -ne 0 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Combined variables based on common data
|
# Combined variables based on common data
|
||||||
|
# Override: Capable with caveats
|
||||||
REV="${REVISION}${APPEND_TO_DIR}"
|
REV="${REVISION}${APPEND_TO_DIR}"
|
||||||
|
|
||||||
|
# These repos have modules
|
||||||
|
# Override: Allowed
|
||||||
|
# This variable can (and probably should) be overriden by their common_X files
|
||||||
|
# that are sourced. The reason is because future EL's can potentially change up
|
||||||
|
# which repos are module based (whether adding/removing). This is something to
|
||||||
|
# keep in mind. For example, Fedora (sanely) has a "base" repo and then an
|
||||||
|
# updates repo for both their regular packages *and* their modularity repos.
|
||||||
|
# This obviously makes sense and I can only hope Red Hat decides to bring that
|
||||||
|
# back in some way.
|
||||||
|
MODS=(
|
||||||
|
AppStream
|
||||||
|
PowerTools
|
||||||
|
)
|
||||||
|
|
||||||
|
# Used to iterate over ISOs?
|
||||||
|
# Override: Allowed
|
||||||
|
VARIANTS=(boot minimal dvd1)
|
||||||
|
92
sync/gen-torrents.sh
Executable file
92
sync/gen-torrents.sh
Executable file
@ -0,0 +1,92 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
|
||||||
|
# Source common variables
|
||||||
|
# shellcheck disable=SC2046,1091,1090
|
||||||
|
source "$(dirname "$0")/common"
|
||||||
|
|
||||||
|
NAME=gen-torrents
|
||||||
|
|
||||||
|
USAGE="usage: $NAME <torrentdir>"
|
||||||
|
ISODIR=${1}
|
||||||
|
|
||||||
|
if [[ -z "${ISODIR}" || $# == 0 ]]; then
|
||||||
|
echo "$USAGE"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Setup a lock?
|
||||||
|
LOCKFILE="/tmp/${NAME}.lock"
|
||||||
|
if [ -f "$LOCKFILE" ]; then
|
||||||
|
echo "Script is already running"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
trap 'rm -f $LOCKFILE' EXIT
|
||||||
|
touch $LOCKFILE
|
||||||
|
|
||||||
|
# stamp the email
|
||||||
|
|
||||||
|
# Where to put torrent data
|
||||||
|
TORRENT_DOWNLOAD_DIR="/opt/rtorrent/download"
|
||||||
|
# Where to drop created torrents
|
||||||
|
TORRENT_START_DIR="/opt/rtorrent/watch/start"
|
||||||
|
# What trackers should be used
|
||||||
|
TORRENT_TRACKERS=(
|
||||||
|
"udp://tracker.opentrackr.org:1337/announce"
|
||||||
|
"udp://tracker.openbittorrent.com:80/announce"
|
||||||
|
)
|
||||||
|
# Regex of paths to exclude
|
||||||
|
TORRENT_EXCLUDES='.*\/CHECKSUM.asc'
|
||||||
|
TORRENT_COMMENT="https://docs.rockylinux.org/release_notes/${REVISION}/"
|
||||||
|
THREADS=10
|
||||||
|
|
||||||
|
printf "* Step 1: Create scaffolding and link\n"
|
||||||
|
cd "${TORRENT_DOWNLOAD_DIR}" || exit 1
|
||||||
|
for variant in "${VARIANTS[@]}"; do
|
||||||
|
for arch in "${ARCHES[@]}"; do
|
||||||
|
# Skip this architecture if it's not there
|
||||||
|
if [[ ! -d "${ISODIR}/${arch}" ]]; then
|
||||||
|
printf "** %s - Does not exist. Skipping.\n" "${ISODIR}/${arch}"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
name_template="Rocky-${REVISION}-${arch}-${variant}"
|
||||||
|
|
||||||
|
if [[ ! -f "${ISODIR}/${arch}/${name_template}.iso" ]]; then
|
||||||
|
printf "** %s - Does not exist. Skipping.\n" "${ISODIR}/${arch}/${name_template}.iso"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "** Making directory: %s/%s\n" "${TORRENT_DOWNLOAD_DIR}" "${name_template}"
|
||||||
|
mkdir "${name_template}" || exit 2
|
||||||
|
|
||||||
|
printf "** Linking Version: %s; Arch: %s; Variant: %s\n" "${REVISION}" "${arch}" "${variant}"
|
||||||
|
ln -sv \
|
||||||
|
"${ISODIR}"/"${arch}"/{CHECKSUM*,"${name_template}".iso*} \
|
||||||
|
"${name_template}"/
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
printf "* Step 2: Generate torrents\n"
|
||||||
|
for torrent_directory in "${TORRENT_DOWNLOAD_DIR}"/Rocky-"${REVISION}"-*; do
|
||||||
|
name="$(basename "${torrent_directory}")"
|
||||||
|
|
||||||
|
if [[ -d "${torrent_directory}" ]]; then
|
||||||
|
printf "** Creating torrent for %s\n" "${torrent_directory}"
|
||||||
|
else
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
torrenttools create \
|
||||||
|
--announce "${TORRENT_TRACKERS[@]}" --name "${name}" \
|
||||||
|
--exclude "${TORRENT_EXCLUDES}" --output "${TORRENT_START_DIR}" \
|
||||||
|
--threads "${THREADS}" --comment "${TORRENT_COMMENT}" \
|
||||||
|
"${torrent_directory}"
|
||||||
|
res=$?
|
||||||
|
if [[ $res -ne 0 ]]; then
|
||||||
|
printf "**[ERROR] Failed to create torrent."
|
||||||
|
exit "$res"
|
||||||
|
fi
|
||||||
|
done
|
@ -51,7 +51,7 @@ for x in "${ARCHES[@]}"; do
|
|||||||
test -d "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/debug/tree"
|
test -d "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/debug/tree"
|
||||||
ret_val=$?
|
ret_val=$?
|
||||||
if [ "$ret_val" -eq 0 ]; then
|
if [ "$ret_val" -eq 0 ]; then
|
||||||
createrepo --update "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/${z}" \
|
createrepo --update "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/debug/tree" \
|
||||||
"--distro=cpe:/o:rocky:rocky:${REVISION:0:1},Rocky Linux ${REVISION:0:1}"
|
"--distro=cpe:/o:rocky:rocky:${REVISION:0:1},Rocky Linux ${REVISION:0:1}"
|
||||||
else
|
else
|
||||||
echo "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/debug/tree does not exist"
|
echo "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/debug/tree does not exist"
|
||||||
|
@ -18,4 +18,9 @@ if [ $ret_val -eq "0" ]; then
|
|||||||
# shellcheck disable=SC2035
|
# shellcheck disable=SC2035
|
||||||
sudo -l && find **/* -maxdepth 0 -type d | parallel --will-cite -j 18 sudo rsync -av --chown=10004:10005 --progress --relative --human-readable \
|
sudo -l && find **/* -maxdepth 0 -type d | parallel --will-cite -j 18 sudo rsync -av --chown=10004:10005 --progress --relative --human-readable \
|
||||||
{} "${TARGET}"
|
{} "${TARGET}"
|
||||||
|
|
||||||
|
# Full file list update
|
||||||
|
cd "${PRODUCTION_ROOT}/${CATEGORY_STUB}/" || { echo "Failed to change directory"; exit 1; }
|
||||||
|
find . > fullfilelist
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user