From 974b2509b5acc48f100034f1b30efe68b8de0e24 Mon Sep 17 00:00:00 2001 From: Vitaly Lipatov <lav@etersoft.ru> Date: Fri, 26 Aug 2016 00:55:13 +0300 Subject: [PATCH] rpmgs: initial support for Source-git --- bin/rpmgs | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/bin/rpmgs b/bin/rpmgs index 1f6dbf0..7130f8d 100755 --- a/bin/rpmgs +++ b/bin/rpmgs @@ -1,6 +1,6 @@ #!/bin/bash -# 2005-2006, 2009, 2014, 2015 (c) Etersoft www.etersoft.ru -# 2005-2015 Author: Vitaly Lipatov <lav@etersoft.ru> +# 2005-2006, 2009, 2014, 2015, 2016 (c) Etersoft www.etersoft.ru +# 2005-2016 Author: Vitaly Lipatov <lav@etersoft.ru> # Public domain # # GS - get source @@ -123,7 +123,7 @@ function get_source_svn() # Source-git: http://git.altlinux.org/people/lav/packages/rpm-build-fonts.git function get_source_git() { - fatal "realize me" + GETSOURCEGIT=$(source_ext "$1" git "$2") } # Source-url: ftp://updates.etersoft.ru/pub/Etersoft/WINE@Etersoft/last/sources/tarball/%name-%version.tar.gz @@ -229,7 +229,7 @@ do mkdir -p $RPMSOURCEDIR/ && pushd $RPMSOURCEDIR/ >/dev/null || fatal "Can't create/chdir..." # Test for eterbuild extensions (will set GETSOURCEURL or GETSOURCESVN) - get_source_url $spec $nn || get_source_svn $spec $nn + get_source_url $spec $nn || get_source_git $spec $nn || get_source_svn $spec $nn if ! rhas "$GETSOURCE" ".tar$" ; then warning "It is recommended to use .tar tarballs for sources ($FTB now)" @@ -237,7 +237,8 @@ do if [ -n "${GETSOURCESVN}" ] ; then is_gear $SPECDIR || fatal "Source-svn works only with gear repo" - # TODO: GETSOURCEGIT + elif [ -n "${GETSOURCEGIT}" ] ; then + is_gear $SPECDIR || fatal "Source-git works only with gear repo" # TODO: rewrite code to use original file format and temp. download dir elif [ -n "${GETSOURCEURL}" ] ; then echog "Try to load ${GETSOURCEURL} for $spec" @@ -275,13 +276,28 @@ do docmd git svn clone $GETSOURCESVN $GITROOT echo "Run svn rebase from $GETSOURCESVN" docmd git svn rebase + elif [ -n "${GETSOURCEGIT}" ] ; then + echog "Try to fetch ${GETSOURCEGIT} for $spec" + #TODO check upstream + #TODO error if incompatible + docmd git remote add upstream $GETSOURCEGIT + docmd git fetch upstream || fatal + #TODO check tag: v%version or %version + docmd git merge v$GSSETVERSION || docmd git merge $GSSETVERSION + #docmd git commit -m "mergejust import $FTB with rpmgs script" elif is_gear ; then CURNAME=$(get_tardir_from_rules) || fatal "There is no 'tar:' line in gear rules file or 'tar: .' used" + # FIXME: hack to unpack to correct place. + [ $(basename `pwd`) = ".gear" ] && cd .. test -d "$CURNAME" || CURNAME=$(get_tarballname "$spec") test -d "$CURNAME" || CURNAME=$BASENAME - gear_update_from_tarball "$RPMSOURCEDIR/$FTB" "$CURNAME" $FORCEDOWNLOAD - rm -f "$RPMSOURCEDIR/$FTB" - docmd git commit -m "just import $FTB with rpmgs script" + if [ -d "$RPMSOURCEDIR" ] && [ -f "$RPMSOURCEDIR/$FTB" ] ; then + gear_update_from_tarball "$RPMSOURCEDIR/$FTB" "$CURNAME" $FORCEDOWNLOAD + rm -f "$RPMSOURCEDIR/$FTB" + docmd git commit -m "just import $FTB with rpmgs script" + else + echo "Skip missed tarball commiting" + fi fi else is_gear && echo "Skip tarball committing (run with version or with -f option)." -- 2.24.1