diff options
author | Martin Quinson <mquinson@debian.org> | 2003-01-21 09:49:29 +0000 |
---|---|---|
committer | Martin Quinson <mquinson@debian.org> | 2003-01-21 09:49:29 +0000 |
commit | 02dc4a5f8c1979e9a23f7b6851f693d29b640c4d (patch) | |
tree | 2f397f5df89f4529b89fd0e7a021238d0f290007 /toppatch.in | |
parent | 4d11e99bfc25e0261111d202a3a2afdf97daea5c (diff) | |
download | quilt-02dc4a5f8c1979e9a23f7b6851f693d29b640c4d.tar.gz |
Version 0.11, from Andreas Gruenbacher
Diffstat (limited to 'toppatch.in')
-rwxr-xr-x | toppatch.in | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/toppatch.in b/toppatch.in new file mode 100755 index 0000000..0d2201d --- /dev/null +++ b/toppatch.in @@ -0,0 +1,132 @@ +#!/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: toppatch [-bpnfa] [patchname]" + if [ x$1 = x-h ] + then + cat <<EOF + +Print the name of the topmost patch on the current stack +of applied patches, or the names of one or more patches +relative to this patch. + +-b Print the names of all patches before the + topmost or specified patch. + +-p Print the name of the previous patch in the + series. + +-n Print the name of the next patch in the series. + +-f Print the names of all patches following the + topmost or specified patch. + +-a Print the names of all patches in the file series. + +EOF + exit 0 + else + exit 1 + fi +} + +options=`getopt -o bpnfah -- "$@"` + +if [ $? -ne 0 ] +then + usage +fi + +eval set -- "$options" + +opt_what=here + +while true +do + case "$1" in + -b) + opt_what=before + shift ;; + -p) + opt_what=previous + shift ;; + -n) + opt_what=next + shift ;; + -f) + opt_what=follow + shift ;; + -a) + opt_what=all + shift ;; + -h) + usage -h ;; + --) + shift + break ;; + esac +done + +if [ $# -gt 1 ] +then + usage +elif [ $# -eq 1 ] +then + opt_patch=$1 +fi + +if [ -n "$opt_patch" ] +then + patch=$(stripit $opt_patch) +else + patch=$(top_patch) +fi + +case $opt_what in +before) + if [ -n "$patch" ] + then + patches_before $patch + fi + ;; +previous) + if [ -n "$patch" ] + then + patches_before $patch | tail -1 + fi + ;; +here) + if [ -n "$patch" ] + then + echo $patch + fi + ;; +next) + if [ -z "$patch" ] + then + cat_series | head -1 + else + patches_after $patch | head -1 + fi + ;; +follow) + if [ -z "$patch" ] + then + cat_series + else + patches_after $patch + fi + ;; +all) + cat_series + ;; +esac |