You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mxe/tools/patch-tool-mxe

64 lines
1.3 KiB

#!/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
patch_name=${3:-1-fixes}
setupEnv() {
# MXE directory
export mxedir=$(cd $(dirname $0) && cd .. && pwd)
}
function init_git {
setupEnv
make -C $mxedir init-git-$pkg
}
function export_patch {
setupEnv
make -C $mxedir export-patch-$pkg PATCH_NAME=${patch_name}
}
function import_patch {
setupEnv
make -C $mxedir import-patch-$pkg PATCH_NAME=${patch_name}
}
function import_all_patches {
setupEnv
make -C $mxedir import-all-patches-$pkg
}
case "$cmd" in
init)
init_git $pkg
;;
import)
import_patch $pkg
;;
import-all)
import_all_patches $pkg
;;
export)
export_patch $pkg
;;
*)
echo "Unrecognized command '${cmd}'" >&2
cat <<EOS
Usage: $0 COMMAND PACKAGENAME [PATCHNAME]
where COMMAND is one of:
init - create a git directory for the package with the raw source
import - apply the "pkgname-PATCHNAME.patch" patch commits
import-all - apply commits from all the patches of the package
export - create/replace the "pkgname-PATCHNAME.patch" patch with a patch of all commits since init.
If PATCHNAME is not set, it is default to "1-fixes".
EOS
exit 1
;;
esac