summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: c0a58fb)
raw | patch | inline | side by side (parent: c0a58fb)
author | Linus Torvalds <torvalds@g5.osdl.org> | |
Sun, 24 Jul 2005 01:46:27 +0000 (18:46 -0700) | ||
committer | Linus Torvalds <torvalds@g5.osdl.org> | |
Sun, 24 Jul 2005 01:46:27 +0000 (18:46 -0700) |
Hey, people are using them, and we have an install target for them, so
make sure that we can actually install them sanely without disturbing
the namespace.
make sure that we can actually install them sanely without disturbing
the namespace.
tools/Makefile | patch | blob | history | |
tools/applymbox | [deleted file] | patch | blob | history |
tools/applypatch | [deleted file] | patch | blob | history |
tools/git-applymbox | [new file with mode: 0755] | patch | blob |
tools/git-applypatch | [new file with mode: 0755] | patch | blob |
diff --git a/tools/Makefile b/tools/Makefile
index 5c07cec0eaf51ee4421712f60bdbfd3fc21a3dcd..a16b667964e49d2924b4c5a606598518e7575821 100644 (file)
--- a/tools/Makefile
+++ b/tools/Makefile
bin=$(prefix)/bin
# dest=
-PROGRAMS=mailsplit mailinfo
-SCRIPTS=applymbox applypatch
+PROGRAMS=git-mailsplit git-mailinfo
+SCRIPTS=git-applymbox git-applypatch
+
+git-%: %.c
+ $(CC) $(CFLAGS) -o $@ $(filter %.c,$^)
all: $(PROGRAMS)
diff --git a/tools/applymbox b/tools/applymbox
--- a/tools/applymbox
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/sh
-##
-## "dotest" is my stupid name for my patch-application script, which
-## I never got around to renaming after I tested it. We're now on the
-## second generation of scripts, still called "dotest".
-##
-## Update: Ryan Anderson finally shamed me into naming this "applymbox".
-##
-## You give it a mbox-format collection of emails, and it will try to
-## apply them to the kernel using "applypatch"
-##
-## applymbox [ -c .dotest/msg-number ] [ -q ] mail_archive [Signoff_file]"
-##
-## The patch application may fail in the middle. In which case:
-## (1) look at .dotest/patch and fix it up to apply
-## (2) re-run applymbox with -c .dotest/msg-number for the current one.
-## Pay a special attention to the commit log message if you do this and
-## use a Signoff_file, because applypatch wants to append the sign-off
-## message to msg-clean every time it is run.
-
-query_apply= continue= resume=t
-while case "$#" in 0) break ;; esac
-do
- case "$1" in
- -q) query_apply=t ;;
- -c) continue="$2"; resume=f; shift ;;
- -*) usage ;;
- *) break ;;
- esac
- shift
-done
-
-case "$continue" in
-'')
- rm -rf .dotest
- mkdir .dotest
- mailsplit "$1" .dotest || exit 1
-esac
-
-case "$query_apply" in
-t) touch .dotest/.query_apply
-esac
-
-for i in .dotest/0*
-do
- case "$resume,$continue" in
- f,$i) resume=t;;
- f,*) continue;;
- *)
- mailinfo .dotest/msg .dotest/patch <$i >.dotest/info || exit 1
- git-stripspace < .dotest/msg > .dotest/msg-clean
- ;;
- esac
- applypatch .dotest/msg-clean .dotest/patch .dotest/info "$2"
- ret=$?
- if [ $ret -ne 0 ]; then
- # 2 is a special exit code from applypatch to indicate that
- # the patch wasn't applied, but continue anyway
- [ $ret -ne 2 ] && exit $ret
- fi
-done
-# return to pristine
-rm -fr .dotest
diff --git a/tools/applypatch b/tools/applypatch
--- a/tools/applypatch
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/bin/sh
-##
-## applypatch takes four file arguments, and uses those to
-## apply the unpacked patch (surprise surprise) that they
-## represent to the current tree.
-##
-## The arguments are:
-## $1 - file with commit message
-## $2 - file with the actual patch
-## $3 - "info" file with Author, email and subject
-## $4 - optional file containing signoff to add
-##
-signoff="$4"
-final=.dotest/final-commit
-##
-## If this file exists, we ask before applying
-##
-query_apply=.dotest/.query_apply
-MSGFILE=$1
-PATCHFILE=$2
-INFO=$3
-EDIT=${VISUAL:-$EDITOR}
-EDIT=${EDIT:-vi}
-
-export GIT_AUTHOR_NAME="$(sed -n '/^Author/ s/Author: //p' .dotest/info)"
-export GIT_AUTHOR_EMAIL="$(sed -n '/^Email/ s/Email: //p' .dotest/info)"
-export GIT_AUTHOR_DATE="$(sed -n '/^Date/ s/Date: //p' .dotest/info)"
-export SUBJECT="$(sed -n '/^Subject/ s/Subject: //p' .dotest/info)"
-
-if [ -n "$signoff" -a -f "$signoff" ]; then
- cat $signoff >> $MSGFILE
-fi
-
-(echo "[PATCH] $SUBJECT" ; if [ -s $MSGFILE ]; then echo ; cat $MSGFILE; fi ) > $final
-
-f=0
-[ -f $query_apply ] || f=1
-
-while [ $f -eq 0 ]; do
- echo "Commit Body is:"
- echo "--------------------------"
- cat $final
- echo "--------------------------"
- echo -n "Apply? [y]es/[n]o/[e]dit/[a]ccept all "
- read reply
- case $reply in
- y|Y) f=1;;
- n|N) exit 2;; # special value to tell dotest to keep going
- e|E) $EDIT $final;;
- a|A) rm -f $query_apply
- f=1;;
- esac
-done
-
-echo
-echo Applying "'$SUBJECT'"
-echo
-
-git-apply --index $PATCHFILE || exit 1
-tree=$(git-write-tree) || exit 1
-echo Wrote tree $tree
-commit=$(git-commit-tree $tree -p $(cat .git/HEAD) < $final) || exit 1
-echo Committed: $commit
-echo $commit > .git/HEAD
diff --git a/tools/git-applymbox b/tools/git-applymbox
--- /dev/null
+++ b/tools/git-applymbox
@@ -0,0 +1,63 @@
+#!/bin/sh
+##
+## "dotest" is my stupid name for my patch-application script, which
+## I never got around to renaming after I tested it. We're now on the
+## second generation of scripts, still called "dotest".
+##
+## Update: Ryan Anderson finally shamed me into naming this "applymbox".
+##
+## You give it a mbox-format collection of emails, and it will try to
+## apply them to the kernel using "applypatch"
+##
+## applymbox [ -c .dotest/msg-number ] [ -q ] mail_archive [Signoff_file]"
+##
+## The patch application may fail in the middle. In which case:
+## (1) look at .dotest/patch and fix it up to apply
+## (2) re-run applymbox with -c .dotest/msg-number for the current one.
+## Pay a special attention to the commit log message if you do this and
+## use a Signoff_file, because applypatch wants to append the sign-off
+## message to msg-clean every time it is run.
+
+query_apply= continue= resume=t
+while case "$#" in 0) break ;; esac
+do
+ case "$1" in
+ -q) query_apply=t ;;
+ -c) continue="$2"; resume=f; shift ;;
+ -*) usage ;;
+ *) break ;;
+ esac
+ shift
+done
+
+case "$continue" in
+'')
+ rm -rf .dotest
+ mkdir .dotest
+ mailsplit "$1" .dotest || exit 1
+esac
+
+case "$query_apply" in
+t) touch .dotest/.query_apply
+esac
+
+for i in .dotest/0*
+do
+ case "$resume,$continue" in
+ f,$i) resume=t;;
+ f,*) continue;;
+ *)
+ mailinfo .dotest/msg .dotest/patch <$i >.dotest/info || exit 1
+ git-stripspace < .dotest/msg > .dotest/msg-clean
+ ;;
+ esac
+ applypatch .dotest/msg-clean .dotest/patch .dotest/info "$2"
+ ret=$?
+ if [ $ret -ne 0 ]; then
+ # 2 is a special exit code from applypatch to indicate that
+ # the patch wasn't applied, but continue anyway
+ [ $ret -ne 2 ] && exit $ret
+ fi
+done
+# return to pristine
+rm -fr .dotest
diff --git a/tools/git-applypatch b/tools/git-applypatch
--- /dev/null
+++ b/tools/git-applypatch
@@ -0,0 +1,64 @@
+#!/bin/sh
+##
+## applypatch takes four file arguments, and uses those to
+## apply the unpacked patch (surprise surprise) that they
+## represent to the current tree.
+##
+## The arguments are:
+## $1 - file with commit message
+## $2 - file with the actual patch
+## $3 - "info" file with Author, email and subject
+## $4 - optional file containing signoff to add
+##
+signoff="$4"
+final=.dotest/final-commit
+##
+## If this file exists, we ask before applying
+##
+query_apply=.dotest/.query_apply
+MSGFILE=$1
+PATCHFILE=$2
+INFO=$3
+EDIT=${VISUAL:-$EDITOR}
+EDIT=${EDIT:-vi}
+
+export GIT_AUTHOR_NAME="$(sed -n '/^Author/ s/Author: //p' .dotest/info)"
+export GIT_AUTHOR_EMAIL="$(sed -n '/^Email/ s/Email: //p' .dotest/info)"
+export GIT_AUTHOR_DATE="$(sed -n '/^Date/ s/Date: //p' .dotest/info)"
+export SUBJECT="$(sed -n '/^Subject/ s/Subject: //p' .dotest/info)"
+
+if [ -n "$signoff" -a -f "$signoff" ]; then
+ cat $signoff >> $MSGFILE
+fi
+
+(echo "[PATCH] $SUBJECT" ; if [ -s $MSGFILE ]; then echo ; cat $MSGFILE; fi ) > $final
+
+f=0
+[ -f $query_apply ] || f=1
+
+while [ $f -eq 0 ]; do
+ echo "Commit Body is:"
+ echo "--------------------------"
+ cat $final
+ echo "--------------------------"
+ echo -n "Apply? [y]es/[n]o/[e]dit/[a]ccept all "
+ read reply
+ case $reply in
+ y|Y) f=1;;
+ n|N) exit 2;; # special value to tell dotest to keep going
+ e|E) $EDIT $final;;
+ a|A) rm -f $query_apply
+ f=1;;
+ esac
+done
+
+echo
+echo Applying "'$SUBJECT'"
+echo
+
+git-apply --index $PATCHFILE || exit 1
+tree=$(git-write-tree) || exit 1
+echo Wrote tree $tree
+commit=$(git-commit-tree $tree -p $(cat .git/HEAD) < $final) || exit 1
+echo Committed: $commit
+echo $commit > .git/HEAD