diff --git a/scripts/patch.sh b/scripts/patch.sh index 90d2de7b..2b0aa29e 100755 --- a/scripts/patch.sh +++ b/scripts/patch.sh @@ -5,19 +5,27 @@ shopt -s nullglob . "$GLUONDIR"/scripts/modules.sh +TMPDIR="$GLUON_BUILDDIR"/tmp + +mkdir -p "$TMPDIR" + +PATCHDIR="$TMPDIR"/patching +trap 'rm -rf "$PATCHDIR"' EXIT + for module in $GLUON_MODULES; do echo "--- Patching module '$module' ---" - cd "$GLUONDIR"/$module - git checkout -B patching base + git clone -s -b base --single-branch "$GLUONDIR"/$module "$PATCHDIR" 2>/dev/null + cd "$PATCHDIR" for patch in "$GLUONDIR"/patches/$module/*.patch; do - if ! git -c user.name='Gluon Patch Manager' -c user.email='gluon@void.example.com' -c commit.gpgsign=false am --whitespace=nowarn --committer-date-is-author-date "$patch"; then - git am --abort - git checkout patched - git branch -D patching - exit 1 - fi + git -c user.name='Gluon Patch Manager' -c user.email='gluon@void.example.com' -c commit.gpgsign=false am --whitespace=nowarn --committer-date-is-author-date "$patch" done - git branch -M patched + + cd "$GLUONDIR"/$module + git fetch "$PATCHDIR" 2>/dev/null + git checkout -B patched FETCH_HEAD + git submodule update --init --recursive + + rm -rf "$PATCHDIR" done diff --git a/scripts/update.sh b/scripts/update.sh index 86c69628..8aa98731 100755 --- a/scripts/update.sh +++ b/scripts/update.sh @@ -14,8 +14,7 @@ for module in $GLUON_MODULES; do mkdir -p "$GLUONDIR"/$module cd "$GLUONDIR"/$module git init + git config commit.gpgsign false - git checkout $commit 2>/dev/null || git fetch $repo $branch - git checkout -B base $commit - git submodule update --init --recursive + git branch -f base $commit 2>/dev/null || git fetch -f $repo $branch:base done