From 1b17b18e8e153e9fdd264b447b785c7892c37a18 Mon Sep 17 00:00:00 2001 From: Marcelo Leitner Date: Thu, 22 Mar 2007 17:03:17 +0000 Subject: - Added helper script to be ran with emi in order to do manual approvals. --- approve.sh | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100755 approve.sh diff --git a/approve.sh b/approve.sh new file mode 100755 index 0000000..ce0bf28 --- /dev/null +++ b/approve.sh @@ -0,0 +1,94 @@ +#!/bin/bash -e + +SRCBASEDIR=/home/mandrake/uploads/queue +DESTBASEDIR=/home/mandrake/uploads/approved +REJECTEDDIR=/home/mandrake/uploads/rejected +DISTRO=cooker + +function list() { + echo "The following packages are currently queued:" >&2 + find -L "$SRCBASEDIR/$DISTRO" -name "*.src.rpm" |\ + sed "s@$SRCBASEDIR/$DISTRO/@@;s@\(.*\)/\([0-9]\+[^_]\+\)@\1 \2 @" |\ + sort -k2 |\ + while read media id pkg; do + printf "%-15s %s %15s %s\n" "$media" "$id" "$pkg" + done +} + +function inspect() { + regexp="*.src.rpm" + if [ -n "$1" ]; then + regexp="*$1*.src.rpm" + fi + for i in `find -L "$SRCBASEDIR/$DISTRO" -name "$regexp" | sed "s@$SRCBASEDIR/$DISTRO/@@" | sort`; do + echo $i + rpm -qp --changelog $SRCBASEDIR/$DISTRO/$i | head | sed "s/^/\t/" + echo + done +} + +function list_approved() { + echo "The following packages are currently approved:" + find -L "$DESTBASEDIR/$DISTRO" -name "*.src.rpm" |\ + sed "s@$DESTBASEDIR/$DISTRO/@@;s@\(.*\)/\([0-9]\+[^_]\+\)@\1 \2 @" |\ + sort -k2 |\ + while read media id pkg; do + printf "%-15s %s %15s %s\n" "$media" "$id" "$pkg" + done +} + +function move() { + id="$1" + dest="$2" + queuename=$(basename $dest) + + echo "Searching for packages with id $id..." + packages=$(find -L "$SRCBASEDIR/$DISTRO" -name "${id}_*.rpm") + + echo "- Found packages:" + for pkg in $packages; do + echo -e "\t$pkg" | sed "s@$SRCBASEDIR/$DISTRO/@@;s/${id}_@[0-9]\+://;s/${id}_//" + done + + echo "- Moving packages to $queuename..." + for srcpath in $packages; do + destpath=$(echo "$srcpath" | sed "s@$SRCBASEDIR@$dest@") + mv "$srcpath" "$destpath" + done +} + +# +# Parse command line +# +if [ -z "$1" ]; then + echo "Usage: $(basename $0) --list-queued" + echo -e "Usage: $(basename $0) --inspect [id]\n to inspect packages changelog" + echo "Usage: $(basename $0) --list-approved" + echo "Usage: $(basename $0) --approve [id...]" + echo "Usage: $(basename $0) --reject [id...]" + echo " Where id = 20070315170513.oden.kenobi.7558, for example" + exit 1 +fi + +if [ "$1" == "--list-queued" ]; then + list +elif [ "$1" == "--inspect" ]; then + shift + inspect $* +elif [ "$1" == "--list-approved" ]; then + list_approved +elif [ "$1" == "--approve" ]; then + while [ -n "$2" ]; do + move "$2" "$DESTBASEDIR" + shift + done +elif [ "$1" == "--reject" ]; then + while [ -n "$2" ]; do + move "$2" "$REJECTEDDIR" + shift + done +else + echo "Unknow command: $1" + exit 1 +fi + -- cgit v1.2.1