Blame show_possible_srpms.sh

Pat Riehecky d02a8a
#!/bin/bash -u
Pat Riehecky d02a8a
#
Pat Riehecky d02a8a
# Might want to drop this in ~/bin/ and chmod u+x it
Pat Riehecky e1634f
#
Pat Riehecky d02a8a
Pat Riehecky d02a8a
#####################################################################
Pat Riehecky d02a8a
usage() {
Pat Riehecky d02a8a
    echo ''                                               >&2
Pat Riehecky d02a8a
    echo "$0 [-hrcq] [-b branch]"                         >&2
Pat Riehecky d02a8a
    echo ''                                               >&2
Pat Riehecky e1634f
    echo ' Finds all possible srpms for a given repo'     >&2
Pat Riehecky e1634f
    echo ' based on the commit log'                       >&2
Pat Riehecky e1634f
    echo ''                                               >&2
Pat Riehecky d02a8a
    echo 'You need to run this from inside a sources git repo' >&2
Pat Riehecky d02a8a
    echo ''                                               >&2
Pat Riehecky d02a8a
    echo ' -h: This help message'                         >&2
Pat Riehecky 8be9a2
    echo ' -r: Use the Redhat commits only'               >&2
Pat Riehecky d02a8a
    echo ' -c: Return in sha:srpm format'                 >&2
Pat Riehecky d02a8a
    echo ' -q: Suppress warnings'                         >&2
Pat Riehecky d02a8a
    echo ''                                               >&2
Pat Riehecky d02a8a
    echo ' -b: specify a branch to examine'               >&2
Pat Riehecky d02a8a
    echo "     defaults to repo's current branch"         >&2
Pat Riehecky d02a8a
    echo ''                                               >&2
Pat Riehecky a2c711
    echo "  $0"                                           >&2
Pat Riehecky d02a8a
    echo "  $0 -b c7"                                     >&2
Pat Riehecky d02a8a
    echo "  $0 -r -b c7"                                  >&2
Pat Riehecky d02a8a
    echo "  $0 -c -b remotes/origin/c7"                   >&2
Pat Riehecky 8be9a2
    echo "  $0 -c -r -b remotes/origin/c7"                >&2
Pat Riehecky d02a8a
    exit 1
Pat Riehecky d02a8a
}
Pat Riehecky d02a8a
Pat Riehecky d02a8a
#####################################################################
Pat Riehecky d02a8a
warn () {
Pat Riehecky d02a8a
    [[ ${QUIET} -eq 1 ]] && return
Pat Riehecky d02a8a
    echo 1>&2 "$@"
Pat Riehecky d02a8a
}
Pat Riehecky d02a8a
Pat Riehecky d02a8a
#####################################################################
Pat Riehecky d02a8a
Pat Riehecky 8be9a2
RHELAUTHOR="CentOS Buildsys <bugs@centos.org>"
Pat Riehecky d02a8a
Pat Riehecky 8be9a2
RHELONLY=0
Pat Riehecky d02a8a
QUIET=0
Pat Riehecky d02a8a
WITHCOMMITHASH=0
Pat Riehecky d02a8a
BRANCH=""
Pat Riehecky d02a8a
Pat Riehecky 828874
# for setting any overrides, such as RHELAUTHOR or default BRANCH
Pat Riehecky 828874
if [ -f /etc/centos-git-common ]; then
Pat Riehecky 828874
  . /etc/centos-git-common
Pat Riehecky 828874
fi
Pat Riehecky 828874
Pat Riehecky d02a8a
#####################################################################
Pat Riehecky d02a8a
# setup args in the right order for making getopt evaluation
Pat Riehecky d02a8a
# nice and easy.  You'll need to read the manpages for more info
Pat Riehecky d02a8a
# utilizing 'while' construct rather than 'for arg' to avoid unnecessary
Pat Riehecky d02a8a
# shifting of program args
Pat Riehecky d02a8a
args=$(getopt -o hrcqb: -- "$@")
Pat Riehecky d02a8a
eval set -- "$args"
Pat Riehecky d02a8a
Pat Riehecky d02a8a
while [[ 0 -eq 0 ]]; do
Pat Riehecky d02a8a
    case $1 in
Pat Riehecky d02a8a
        -- )
Pat Riehecky d02a8a
            # end of getopt args, shift off the -- and get out of the loop
Pat Riehecky d02a8a
            shift
Pat Riehecky d02a8a
            break
Pat Riehecky d02a8a
           ;;
Pat Riehecky d02a8a
         -r )
Pat Riehecky 8be9a2
            # Only look at commits by RHEL
Pat Riehecky 8be9a2
            RHELONLY=1
Pat Riehecky d02a8a
            shift
Pat Riehecky d02a8a
           ;;
Pat Riehecky d02a8a
         -c )
Pat Riehecky d02a8a
            # return with the commit hash as a prefix of the resulting srpm
Pat Riehecky d02a8a
            WITHCOMMITHASH=1
Pat Riehecky d02a8a
            shift
Pat Riehecky d02a8a
           ;;
Pat Riehecky d02a8a
         -q )
Pat Riehecky d02a8a
            # suppress warnings
Pat Riehecky d02a8a
            QUIET=1
Pat Riehecky d02a8a
            shift
Pat Riehecky d02a8a
           ;;
Pat Riehecky d02a8a
         -b )
Pat Riehecky d02a8a
            # Check this particular branch 
Pat Riehecky d02a8a
            BRANCH=$2
Pat Riehecky d02a8a
            shift
Pat Riehecky d02a8a
            shift
Pat Riehecky d02a8a
           ;;
Pat Riehecky d02a8a
         -h )
Pat Riehecky d02a8a
            # get help
Pat Riehecky d02a8a
            usage
Pat Riehecky d02a8a
           ;;
Pat Riehecky d02a8a
    esac
Pat Riehecky d02a8a
done
Pat Riehecky d02a8a
Pat Riehecky a2c711
if [[ ! -d .git ]] || [[ ! -d SPECS ]]; then
Pat Riehecky 7520e4
    echo 'You need to run this from inside a sources git repo' >&2
Pat Riehecky a2c711
    exit 1
Pat Riehecky a2c711
fi
Pat Riehecky a2c711
Pat Riehecky d02a8a
# commit message contains white space, set IFS to \n
Pat Riehecky d02a8a
IFS='
Pat Riehecky d02a8a
'
Pat Riehecky d02a8a
Pat Riehecky 8be9a2
LOGARGS="--pretty=%H|\%s"
Pat Riehecky 8be9a2
if [[ ${RHELONLY} -eq 1 ]]; then
Pat Riehecky 8be9a2
    LOGARGS="${LOGARGS} --author='${RHELAUTHOR}'"
Pat Riehecky 8be9a2
fi
Pat Riehecky 8be9a2
Pat Riehecky d02a8a
if [[ "x${BRANCH}" != 'x' ]]; then
Pat Riehecky 8be9a2
    LOGARGS="${LOGARGS} ${BRANCH}"
Pat Riehecky 8be9a2
fi
Pat Riehecky 8be9a2
Pat Riehecky 8be9a2
loglist=$(git log ${LOGARGS} |grep import)
Pat Riehecky 8be9a2
if [[ $? -ne 0 ]]; then
Pat Riehecky 8be9a2
    exit 1
Pat Riehecky d02a8a
fi
Pat Riehecky d02a8a
Pat Riehecky d02a8a
# flag for if nothing is found
Pat Riehecky d02a8a
FOUND=False
Pat Riehecky d02a8a
for entry in $loglist; do
Pat Riehecky d02a8a
    FOUND=True
Pat Riehecky d02a8a
Pat Riehecky d02a8a
    pkg=$(echo ${entry} | cut -d' ' -f2)
Pat Riehecky d02a8a
    # strip .src.rpm if present
Pat Riehecky d02a8a
    nvr="${pkg%.src.rpm}"
Pat Riehecky d02a8a
    if [[ ${WITHCOMMITHASH} -eq 1 ]]; then
Pat Riehecky d02a8a
        shasum=$(echo ${entry} | cut -d'|' -f1)
Pat Riehecky d02a8a
        echo "${shasum}:${nvr}.src.rpm"
Pat Riehecky d02a8a
    else
Pat Riehecky d02a8a
        echo "${nvr}.src.rpm"
Pat Riehecky d02a8a
    fi
Pat Riehecky d02a8a
done
Pat Riehecky d02a8a
Pat Riehecky d02a8a
if [ "${FOUND}" != "True" ]
Pat Riehecky d02a8a
then
Pat Riehecky d02a8a
    warn "No SRPMs found"
Pat Riehecky d02a8a
fi
Pat Riehecky d02a8a