From 7aec646ade0842eed7b209a669f92b90ea3ab89e Mon Sep 17 00:00:00 2001 From: George T Kramer Date: Mon, 4 Mar 2019 19:13:19 -0800 Subject: [PATCH] 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 --- koji-setup/mash.sh | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/koji-setup/mash.sh b/koji-setup/mash.sh index 7af7011..8956f7e 100755 --- a/koji-setup/mash.sh +++ b/koji-setup/mash.sh @@ -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