mirror of
https://git.centos.org/centos-git-common.git
synced 2025-02-23 08:12:56 +00:00
Added script to show srpms contained within a given repo
Plus, fixes based on suggestions from Elias Persson http://lists.centos.org/pipermail/centos-devel/2014-June/010690.html
This commit is contained in:
parent
d619dd3ec8
commit
d02a8acabe
1 changed files with 139 additions and 0 deletions
139
show_possible_srpms.sh
Executable file
139
show_possible_srpms.sh
Executable file
|
@ -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
|
||||
|
Loading…
Add table
Reference in a new issue