From 6a00e838377de30388dbec6ed48e65ce598b3b7e Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Thu, 29 Jan 2009 14:12:08 +0000 Subject: - when %_with_git_repository is set, define %_after_setup and %_patch to use the new scripts git-repository--after-tarball and git-repository--apply-patch --- git-repository--after-tarball | 63 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100755 git-repository--after-tarball (limited to 'git-repository--after-tarball') diff --git a/git-repository--after-tarball b/git-repository--after-tarball new file mode 100755 index 0000000..5fda909 --- /dev/null +++ b/git-repository--after-tarball @@ -0,0 +1,63 @@ +#!/bin/sh -ex + +# usage: git-repository--after-tarball [] +# with optional environment variables: +# - GIT_URL="git://xxx/foo.git [branch]" +# - GIT_REPOSITORY_CACHE=/zzz/foo.git +# +# the GIT_REPOSITORY_CACHE can be used with or without GIT_URL +# - if GIT_URL is given, GIT_REPOSITORY_CACHE will be a "bare" clone of GIT_URL +# - otherwise, GIT_REPOSITORY_CACHE can be created using: +# % git clone --bare BUILD/foo-1 $GIT_REPOSITORY_CACHE +# where foo-1 is the previous version + + +tarballs="$*" + + +git_clone_in_cwd() { + URL=$1 + [ -n "$2" ] && BRANCH="origin/$2" + + git clone $URL .git-tmp + + cd .git-tmp + git checkout $BRANCH + cd .. + + mv .git-tmp/.git . + rm -r .git-tmp +} + +our_git_clone() { + URL=$1 + HEAD=$2 + + if [ -n "$GIT_REPOSITORY_CACHE" ]; then + if [ -d "$GIT_REPOSITORY_CACHE" ]; then + cd "$GIT_REPOSITORY_CACHE" + git fetch $GIT_URL + cd - + else + git clone --bare $URL "$GIT_REPOSITORY_CACHE" + fi + git_clone_in_cwd "$GIT_REPOSITORY_CACHE" $HEAD + else + git_clone_in_cwd $URL $HEAD + fi +} + +if [ ! -e .git ]; then + if [ -n "$GIT_URL" ]; then + our_git_clone $GIT_URL + elif [ -n "$GIT_REPOSITORY_CACHE" -a -d "$GIT_REPOSITORY_CACHE" ]; then + git_clone_in_cwd "$GIT_REPOSITORY_CACHE" vanilla + else + git init + fi +fi +git add . +git commit -q -a -m "imported $tarballs" +git branch -f vanilla +git branch -f patches-applied +git checkout patches-applied -- cgit v1.2.1