git checkout "$CVSTAG" -- 2>/dev/null || git checkout -t "origin/$CVSTAG" > /dev/null || exit
git symbolic-ref -q HEAD > /dev/null &&
git merge '@{u}'
+ if [ -n "$CVSDATE" ]; then
+ git checkout $(git rev-list -n1 --before="'$CVSDATE'" $CVSTAG) || exit 1
+ fi
fi
if [ ! -f "$ASSUMED_NAME/$SPECFILE" ]; then
local md5
if [ -f additional-md5sums ]; then
- local spec_rev=$(grep $SPECFILE CVS/Entries 2>/dev/null | sed -e s:/$SPECFILE/:: -e s:/.*::)
- if [ -z "$spec_rev" ]; then
- spec_rev=$(head -n 1 $SPECFILE | sed -e 's/.*\$Revision: \([0-9.]*\).*/\1/')
- fi
- local spec="$SPECFILE[0-9.,]*,$(echo $spec_rev | sed 's/\./\\./g')"
md5=$(grep -s -v '^#' additional-md5sums | \
- grep -E "[ ]$(basename "$1")[ ]+${spec}([ ,]|\$)" | \
+ grep -E "[ ]$(basename "$1")([ ,]|\$)" | \
sed -e 's/^\([0-9a-f]\{32\}\).*/\1/' | \
grep -E '^[0-9a-f]{32}$')
# remove spec and sources
$RPMBUILD --clean --rmsource --rmspec --nodeps --define "_specdir $PACKAGE_DIR" --define "_sourcedir $PACKAGE_DIR" $SPECFILE
- rm -rf $PACKAGE_DIR/.git
+ rm -rf $PACKAGE_DIR/.git .gitignore
+ cd $__PWD
+ rmdir --ignore-fail-on-non-empty $PACKAGE_DIR
}
#---------------------------------------------
-q | --quiet )
QUIET="--quiet"; shift ;;
--date )
- CVSDATE="${2}"; shift 2 ;;
+ CVSDATE="${2}"; shift 2
+ date -d "$CVSDATE" > /dev/null 2>&1 || { echo >&2 "No valid date specified"; exit 3; }
+ ;;
-r | --cvstag )
CVSTAG="$2"
shift 2