blob: e98d91ba6265b17c3773d720071498aba30050c0 [file] [log] [blame]
#!/bin/sh
set -e
# stg-dispatch - percollates files matching a pattern down to another patch.
# It does the same job as stg-fold-files-from (and makes use of it to
# do so), but from the patch containing the changes to migrate,
# instead of doing so from the target patch.
# usage: stg-dispatch [-n] <topatch> [-#<n>[-<n>][,<n>]...] <file-pattern>
# Copyright (c) 2007 Yann Dirson <ydirson@altern.org>
# Subject to the GNU GPL, version 2.
die()
{
echo >&2 "$(basename $0) error: $*"
exit 1
}
noact=0
if [ "x$1" = "x-n" ]; then
noact=1
shift
fi
TOPATCH="$1"
shift
stg series --applied --noprefix | grep "^$TOPATCH\$" >/dev/null ||
die "cannot dispatch to unapplied patch '$TOPATCH'"
CURRENTPATCH=$(stg top)
[ "x$TOPATCH" != "x$CURRENTPATCH" ] ||
die "dispatching to current patch ($CURRENTPATCH) makes no sense"
if [ $noact = 1 ]; then
stg-fold-files-from "$CURRENTPATCH" -n "$@"
else
stg goto "$TOPATCH"
stg-fold-files-from "$CURRENTPATCH" "$@"
stg refresh
stg goto "$CURRENTPATCH"
fi