Shawn Iwinski 0c0df9d
#/bin/sh
Shawn Iwinski 0c0df9d
Shawn Iwinski 0c0df9d
GIT=`which git`
Shawn Iwinski 0c0df9d
RPM=`which rpm`
Shawn Iwinski 0c0df9d
Shawn Iwinski 0c0df9d
if [ -z "$GIT" ]
Shawn Iwinski 0c0df9d
then
Shawn Iwinski 0c0df9d
    echo "ERROR: 'git' command not found" 1>&2
Shawn Iwinski 0c0df9d
    exit 1
Shawn Iwinski 0c0df9d
elif [ -z "$RPM" ]
Shawn Iwinski 0c0df9d
then
Shawn Iwinski 0c0df9d
    echo "ERROR: 'rpm' command not found" 1>&2
Shawn Iwinski 0c0df9d
    exit 1
Shawn Iwinski 0c0df9d
fi
Shawn Iwinski 0c0df9d
Shawn Iwinski 0c0df9d
function print {
Shawn Iwinski 0c0df9d
    echo -e "\e[0;33m>>>>> ${1}\e[0m"
Shawn Iwinski 0c0df9d
}
Shawn Iwinski 0c0df9d
Shawn Iwinski 0c0df9d
if [ -x "$1" ]
Shawn Iwinski 0c0df9d
then
Shawn Iwinski 0c0df9d
    SPEC=$1
Shawn Iwinski 0c0df9d
else
Shawn Iwinski 0c0df9d
    SPEC=`ls *.spec | head -1`
Shawn Iwinski 0c0df9d
fi
Shawn Iwinski 0c0df9d
86f9f2c
SPEC_DIR=`pwd`
86f9f2c
86f9f2c
print "SPEC_DIR = $SPEC_DIR"
86f9f2c
Shawn Iwinski 0c0df9d
NAME=`echo $SPEC | sed 's#\.spec##'`
Shawn Iwinski 0c0df9d
VERSION=`egrep '%global\s*github_version' $SPEC | awk '{print $3}'`
Shawn Iwinski 0c0df9d
Shawn Iwinski 0c0df9d
print "SPEC = $SPEC"
Shawn Iwinski 0c0df9d
print "NAME = $NAME"
Shawn Iwinski 0c0df9d
Shawn Iwinski 0c0df9d
GIT_OWNER=`egrep '%global\s*github_owner' $SPEC | awk '{print $3}'`
Shawn Iwinski 0c0df9d
GIT_NAME=`egrep '%global\s*github_name' $SPEC | awk '{print $3}'`
Shawn Iwinski 0c0df9d
GIT_COMMIT=`egrep '%global\s*github_commit' $SPEC | awk '{print $3}'`
Shawn Iwinski 0c0df9d
GIT_REPO=https://github.com/${GIT_OWNER}/${GIT_NAME}
Shawn Iwinski 0c0df9d
GIT_DIR=`echo $GIT_REPO | sed 's#.*/##'`
Shawn Iwinski 0c0df9d
Shawn Iwinski 0c0df9d
print "GIT_OWNER = $GIT_OWNER"
Shawn Iwinski 0c0df9d
print "GIT_NAME = $GIT_NAME"
Shawn Iwinski 0c0df9d
print "GIT_COMMIT = $GIT_COMMIT"
Shawn Iwinski 0c0df9d
print "GIT_REPO = $GIT_REPO"
Shawn Iwinski 0c0df9d
print "GIT_DIR = $GIT_DIR"
Shawn Iwinski 0c0df9d
Shawn Iwinski 0c0df9d
TEMP_DIR=$(mktemp --dir)
Shawn Iwinski 0c0df9d
Shawn Iwinski 0c0df9d
pushd $TEMP_DIR
Shawn Iwinski 0c0df9d
    print "Cloning git repo..."
Shawn Iwinski 0c0df9d
    $GIT clone $GIT_REPO
Shawn Iwinski 0c0df9d
Shawn Iwinski 0c0df9d
    pushd $GIT_DIR
Shawn Iwinski 0c0df9d
        print "Checking out commit..."
Shawn Iwinski 0c0df9d
        $GIT checkout $GIT_COMMIT
Shawn Iwinski 0c0df9d
    popd
Shawn Iwinski 0c0df9d
Shawn Iwinski 0c0df9d
    TAR_DIR=${GIT_NAME}-${GIT_COMMIT}
Shawn Iwinski 0c0df9d
    print "TAR_DIR = $TAR_DIR"
Shawn Iwinski 0c0df9d
Shawn Iwinski 0c0df9d
    mv $GIT_DIR $TAR_DIR
Shawn Iwinski 0c0df9d
86f9f2c
    TAR_FILE=${SPEC_DIR}/${NAME}-${VERSION}-${GIT_COMMIT}.tar.gz
Shawn Iwinski 0c0df9d
    print "TAR_FILE = $TAR_FILE"
Shawn Iwinski 0c0df9d
Shawn Iwinski 0c0df9d
    [ -e $TAR_FILE ] && rm -f $TAR_FILE
Shawn Iwinski 0c0df9d
    tar --exclude-vcs -czf $TAR_FILE $TAR_DIR
Shawn Iwinski 0c0df9d
    chmod 0644 $TAR_FILE
Shawn Iwinski 0c0df9d
popd
Shawn Iwinski 0c0df9d
Shawn Iwinski 0c0df9d
rm -rf $TEMP_DIR