mirror of
https://github.com/clearlinux/koji-setup-scripts.git
synced 2026-08-27 10:55:59 +00:00
Update mash.sh script
Do not bother using DNF to get the NVR of packages. Call out to RPM directly instead. More completely parameterize script to allow for sourcing of variables from parameters.sh sometime in the future. Signed-off-by: George T Kramer <george.t.kramer@intel.com>
This commit is contained in:
+27
-15
@@ -7,32 +7,44 @@ if [[ -e /etc/profile.d/proxy.sh ]]; then
|
||||
source /etc/profile.d/proxy.sh
|
||||
fi
|
||||
|
||||
KOJI_HOME=/srv/koji
|
||||
MASH_HOME=/srv/mash
|
||||
MASH_TRACKER_FILE="$MASH_HOME"/latest-mash-build
|
||||
MASH_DIR="$MASH_HOME"/latest
|
||||
MASH_DIR_OLD="$MASH_DIR".old
|
||||
MASH_DIR_NEW="$MASH_DIR".new
|
||||
TAG_NAME="${TAG_NAME:-clear}"
|
||||
BUILD_ARCH="${BUILD_ARCH:-x86_64}"
|
||||
KOJI_DIR="${KOJI_DIR:-/srv/koji}"
|
||||
MASH_DIR="${MASH_DIR:-/srv/mash}"
|
||||
MASH_TRACKER_FILE="$MASH_DIR"/latest-mash-build
|
||||
MASH_TRACKER_DIR="$MASH_DIR"/latest
|
||||
MASH_DIR_OLD="$MASH_TRACKER_DIR".old
|
||||
MASH_DIR_NEW="$MASH_TRACKER_DIR".new
|
||||
|
||||
write_packages_file() {
|
||||
local PKG_DIR="$1"
|
||||
local PKG_FILE="$2"
|
||||
rpm -qp --qf="%{NAME}\t%{VERSION}\t%{RELEASE}\n" "$PKG_DIR"/*.rpm | sort > "$PKG_FILE"
|
||||
}
|
||||
|
||||
if [[ -e "$MASH_TRACKER_FILE" ]]; then
|
||||
MASH_BUILD_NUM="$(< "$MASH_TRACKER_FILE")"
|
||||
else
|
||||
MASH_BUILD_NUM=0
|
||||
fi
|
||||
KOJI_BUILD_NUM="$(basename "$(realpath "$KOJI_HOME"/repos/dist-clear-build/latest/)")"
|
||||
KOJI_BUILD_NUM="$(basename "$(realpath "$KOJI_DIR"/repos/dist-"$TAG_NAME"-build/latest/)")"
|
||||
if [[ "$MASH_BUILD_NUM" -ne "$KOJI_BUILD_NUM" ]]; then
|
||||
COMPS_FILE=$(mktemp)
|
||||
koji show-groups --comps dist-clear-build > "$COMPS_FILE"
|
||||
COMPS_FILE="$(mktemp)"
|
||||
koji show-groups --comps dist-"$TAG_NAME"-build > "$COMPS_FILE"
|
||||
rm -rf "$MASH_DIR_NEW"
|
||||
mkdir -p "$MASH_DIR_NEW"
|
||||
mash --outputdir="$MASH_DIR_NEW" --compsfile="$COMPS_FILE" clear
|
||||
rm -f "$COMPS_FILE"
|
||||
dnf -q --repofrompath=mash,file://"$MASH_DIR_NEW"/clear/x86_64/os repoquery -a --queryformat="%{NAME}\t%{VERSION}\t%{RELEASE}" | sort > "$MASH_DIR_NEW"/clear/x86_64/packages-os &>/dev/null
|
||||
dnf -q --repofrompath=mash,file://"$MASH_DIR_NEW"/clear/x86_64/debug repoquery -a --queryformat="%{NAME}\t%{VERSION}\t%{RELEASE}" | sort > "$MASH_DIR_NEW"/clear/x86_64/packages-debug &>/dev/null
|
||||
dnf -q --repofrompath=mash,file://"$MASH_DIR_NEW"/clear/source/SRPMS repoquery -a --queryformat="%{NAME}\t%{VERSION}\t%{RELEASE}" | sort > "$MASH_DIR_NEW"/clear/source/packages-SRPMS &>/dev/null
|
||||
if [[ -e "$MASH_DIR" ]]; then
|
||||
mv "$MASH_DIR" "$MASH_DIR_OLD"
|
||||
|
||||
write_packages_file "$MASH_DIR_NEW"/clear/"$BUILD_ARCH"/os/Packages "$MASH_DIR_NEW"/clear/"$BUILD_ARCH"/packages-os
|
||||
write_packages_file "$MASH_DIR_NEW"/clear/"$BUILD_ARCH"/debug "$MASH_DIR_NEW"/clear/"$BUILD_ARCH"/packages-debug
|
||||
write_packages_file "$MASH_DIR_NEW"/clear/source/SRPMS "$MASH_DIR_NEW"/clear/source/packages-SRPMS
|
||||
|
||||
if [[ -e "$MASH_TRACKER_DIR" ]]; then
|
||||
mv "$MASH_TRACKER_DIR" "$MASH_DIR_OLD"
|
||||
fi
|
||||
mv "$MASH_DIR_NEW" "$MASH_DIR"
|
||||
mv "$MASH_DIR_NEW" "$MASH_TRACKER_DIR"
|
||||
rm -rf "$MASH_DIR_OLD"
|
||||
|
||||
echo "$KOJI_BUILD_NUM" > "$MASH_TRACKER_FILE"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user