diff options
author | Volker Grabsch <vog@notjusthosting.com> | 2012-04-12 15:23:12 (GMT) |
---|---|---|
committer | Volker Grabsch <vog@notjusthosting.com> | 2012-04-12 15:23:12 (GMT) |
commit | 1f86817ee82b162a1a5bd495886183ca81a68ba7 (patch) | |
tree | 3116df65f83174295af8c6315a36583f460fe9e0 /tools/patch-tool-mxe | |
parent | 0f01e5e88f720fe5073c88f5cf1803d5c283904d (diff) | |
parent | e513258770cdc39c0d6a904437f191aa61b3175c (diff) | |
download | mxe-2.22.zip mxe-2.22.tar.gz mxe-2.22.tar.bz2 |
Merge all well-tested changes into the stable branchv2.22
Diffstat (limited to 'tools/patch-tool-mxe')
-rwxr-xr-x | tools/patch-tool-mxe | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/tools/patch-tool-mxe b/tools/patch-tool-mxe new file mode 100755 index 0000000..c130fae --- /dev/null +++ b/tools/patch-tool-mxe @@ -0,0 +1,81 @@ +#!/usr/bin/env bash + +# Tool for converting between MXE patch files and git repos +# Imports and exports patch files in "git format-patch" format. + +cmd=$1 +pkg=$2 + +# MXE directory +mxedir=~/mxe + +# directory for unpacked tarballs/git repos +gitsdir=~/gits + + +# John Doe <John Doe@acme.org> +author=`git var GIT_AUTHOR_IDENT | sed 's/^\(.* [<].*[>]\).*$/\1/'` + +pkg_version=`grep '^$(PKG)_VERSION' $mxedir/src/$pkg.mk | \ + sed 's/.*:= \(.*\)/\1/'` + +pkg_short_version=`echo $pkg_version | sed s/'\(.*\)\.[^.]*$'/'\1'/` + +pkg_subdir=`grep '^$(PKG)_SUBDIR' $mxedir/src/$pkg.mk | \ + sed 's/.*:= \(.*\)/\1/' | \ + sed s/'$($(PKG)_VERSION)'/$pkg_version/ | \ + sed s/'$(call SHORT_PKG_VERSION,$(PKG))'/$pkg_short_version/ | \ + sed s/'$(PKG)'/$pkg/;` + +pkg_file=`grep '^$(PKG)_FILE' $mxedir/src/$pkg.mk | \ + sed 's/.*:= \(.*\)/\1/' | \ + sed s/'$($(PKG)_VERSION)'/$pkg_version/ | \ + sed s/'$(call SHORT_PKG_VERSION,$(PKG))'/$pkg_short_version/ | \ + sed s/'$($(PKG)_SUBDIR)'/$pkg_subdir/ | \ + sed s/'$(PKG)'/$pkg/;` + +#echo $pkg +#echo $pkg_version +#echo $pkg_subdir +#echo $pkg_file + +# init +function init_git { + cd $gitsdir + echo $pkg_file | grep "\.tar\.gz" >> /dev/null && tar xf $mxedir/pkg/$pkg_file + echo $pkg_file | grep "\.tar\.bz2" >> /dev/null && tar xf $mxedir/pkg/$pkg_file + echo $pkg_file | grep "\.tar\.xz" >> /dev/null && xz -dc $mxedir/pkg/$pkg_file | tar xf - + echo $pkg_file | grep "\.zip" >> /dev/null && unzip $mxedir/pkg/$pkg_file >> /dev/null + cd $gitsdir/$pkg_subdir && \ + (git init; git add -A; git commit -m "init") > /dev/null + git tag dist +} + +function export_patch { + cd $gitsdir/$pkg_subdir && \ + ( + echo 'This file is part of MXE.' + echo 'See index.html for further information.' + echo '' + echo 'Contains ad hoc patches for cross building.' + echo '' + git format-patch -p --stdout dist..HEAD | \ + sed 's/^From: .*/From: MXE/g;' + ) > $mxedir/src/$pkg-1-fixes.patch +} + +function import_patch { + cd $gitsdir/$pkg_subdir && \ + cat $mxedir/src/$pkg-1-fixes.patch | \ + sed '/^From/,$ !d' | \ + sed s/'^From: .*'/"From: $author"/'g;' | \ + git am --keep-cr +} + +if [ "$cmd" == "init" ]; then + init_git $pkg +elif [ "$cmd" == "import" ]; then + import_patch $pkg +elif [ "$cmd" == "export" ]; then + export_patch $pkg +fi |