From 02dc4a5f8c1979e9a23f7b6851f693d29b640c4d Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Tue, 21 Jan 2003 09:49:29 +0000 Subject: Version 0.11, from Andreas Gruenbacher --- pushpatch.in | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100755 pushpatch.in (limited to 'pushpatch.in') diff --git a/pushpatch.in b/pushpatch.in new file mode 100755 index 0000000..10b5ba8 --- /dev/null +++ b/pushpatch.in @@ -0,0 +1,163 @@ +#!/bin/sh + +# Read in library functions +if ! [ -r @LIB@/patchfns ] +then + echo "Cannot read library @LIB@/patchfns" >&2 + exit 1 +fi +. @LIB@/patchfns + +usage() +{ + echo "Usage: pushpatch [-afq] [npatches|patchname]" + if [ x$1 = x-h ] + then + cat <&2 + return 1 + fi + fi +} + +options=`getopt -o fqah -- "$@"` + +if [ $? -ne 0 ] +then + usage +fi + +eval set -- "$options" + +while true +do + case "$1" in + -f) + opt_force=1 + shift ;; + -q) + opt_quiet=1 + shift ;; + -a) + opt_all=1 + shift ;; + -h) + usage -h ;; + --) + shift + break ;; + esac +done + +if [ $# -gt 1 ] +then + usage +fi + +if [ $# -eq 1 ] +then + if is_numeric $1 + then + number=$1 + else + stop_at_patch=$(stripit $1) + fi +else + [ -z "$opt_all" ] && number=1 +fi + +[ -n "$opt_force" ] && + apatch_options="$apatch_options -f" +[ -n "$opt_quiet" ] && + apatch_options="$apatch_options -q" + +if [ -n "$stop_at_patch" ] +then + if is_applied $stop_at_patch + then + echo "Patch $stop_at_patch is already applied." + exit 1 + fi +fi + +if ! patches=$(list_patches) 2>&1 +then + exit 1 +elif [ -z "$patches" ] +then + top=$(top_patch) + if [ -z "$top" ] + then + echo "No patches applied" + else + echo "File series fully applied, ends at patch $top" + fi + exit 0 +fi + +trap "interrupted=1" SIGINT + +for patch in $patches +do + if ! @LIB@/apatch $apatch_options $patch + then + exit 1 + fi + if [ -n "$interrupted" ] + then + echo "pushpatch interrupted by user" + exit 1 + fi + [ -z "$opt_quiet" ] && echo +done -- cgit