[CentOS-devel] [PATCH] Added script to show srpms contained within a given repo
Pat Riehecky
riehecky at fnal.gov
Mon Jun 16 14:45:42 UTC 2014
From: Pat Riehecky <riehecky at fnal.gov>
Plus, fixes based on suggestions from Elias Persson
http://lists.centos.org/pipermail/centos-devel/2014-June/010690.html
---
show_possible_srpms.sh | 139 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 139 insertions(+), 0 deletions(-)
create mode 100755 show_possible_srpms.sh
diff --git a/show_possible_srpms.sh b/show_possible_srpms.sh
new file mode 100755
index 0000000..f8c5eac
--- /dev/null
+++ b/show_possible_srpms.sh
@@ -0,0 +1,139 @@
+#!/bin/bash -u
+#
+# Finds all possible srpms for a given repo
+#
+# Might want to drop this in ~/bin/ and chmod u+x it
+
+#####################################################################
+usage() {
+ echo '' >&2
+ echo "$0 [-hrcq] [-b branch]" >&2
+ echo '' >&2
+ echo 'You need to run this from inside a sources git repo' >&2
+ echo '' >&2
+ echo ' -h: This help message' >&2
+ echo ' -r: Use the Redhat tag rather than centos tag' >&2
+ echo ' -c: Return in sha:srpm format' >&2
+ echo ' -q: Suppress warnings' >&2
+ echo '' >&2
+ echo ' -b: specify a branch to examine' >&2
+ echo " defaults to repo's current branch" >&2
+ echo '' >&2
+ echo " $0 -b c7" >&2
+ echo " $0 -r -b c7" >&2
+ echo " $0 -c -b remotes/origin/c7" >&2
+ exit 1
+}
+
+#####################################################################
+warn () {
+ [[ ${QUIET} -eq 1 ]] && return
+ echo 1>&2 "$@"
+}
+
+#####################################################################
+filter () {
+ # filter used for log messages
+ if [[ ${RHELTAG} -eq 1 ]]
+ then
+ grep -v centos | grep import
+ else
+ grep import
+ fi
+}
+
+#####################################################################
+if [[ $? -ne 0 ]]; then
+ usage
+fi
+
+if [[ ! -d .git ]] || [[ ! -d SPECS ]]; then
+ echo 'You need to run this from inside a sources git repo'
+ exit 1
+fi
+
+RHELTAG=0
+QUIET=0
+WITHCOMMITHASH=0
+BRANCH=""
+
+#####################################################################
+# setup args in the right order for making getopt evaluation
+# nice and easy. You'll need to read the manpages for more info
+# utilizing 'while' construct rather than 'for arg' to avoid unnecessary
+# shifting of program args
+args=$(getopt -o hrcqb: -- "$@")
+eval set -- "$args"
+
+while [[ 0 -eq 0 ]]; do
+ case $1 in
+ -- )
+ # end of getopt args, shift off the -- and get out of the loop
+ shift
+ break
+ ;;
+ -r )
+ # skip any package with 'centos' in the dist area
+ RHELTAG=1
+ shift
+ ;;
+ -c )
+ # return with the commit hash as a prefix of the resulting srpm
+ WITHCOMMITHASH=1
+ shift
+ ;;
+ -q )
+ # suppress warnings
+ QUIET=1
+ shift
+ ;;
+ -b )
+ # Check this particular branch
+ BRANCH=$2
+ shift
+ shift
+ ;;
+ -h )
+ # get help
+ usage
+ ;;
+ esac
+done
+
+# commit message contains white space, set IFS to \n
+IFS='
+'
+
+if [[ "x${BRANCH}" != 'x' ]]; then
+ loglist=$(git log ${BRANCH} --pretty="%H|%s" | filter)
+ if [[ $? -ne 0 ]]; then
+ exit 1
+ fi
+else
+ loglist=$(git log --pretty="%H|%s" | filter)
+ if [[ $? -ne 0 ]]; then
+ exit 1
+ fi
+fi
+
+# flag for if nothing is found
+FOUND=False
+for entry in $loglist; do
+ FOUND=True
+
+ pkg=$(echo ${entry} | cut -d' ' -f2)
+ # strip .src.rpm if present
+ nvr="${pkg%.src.rpm}"
+ if [[ ${WITHCOMMITHASH} -eq 1 ]]; then
+ shasum=$(echo ${entry} | cut -d'|' -f1)
+ echo "${shasum}:${nvr}.src.rpm"
+ else
+ echo "${nvr}.src.rpm"
+ fi
+done
+
+if [ "${FOUND}" != "True" ]
+then
+ warn "No SRPMs found"
+fi
+
--
1.7.1
More information about the CentOS-devel
mailing list