1#!/bin/sh 2## 3## "dotest" is my stupid name for my patch-application script, which 4## I never got around to renaming after I tested it. We're now on the 5## second generation of scripts, still called "dotest". 6## 7## Update: Ryan Anderson finally shamed me into naming this "applymbox". 8## 9## You give it a mbox-format collection of emails, and it will try to 10## apply them to the kernel using "applypatch" 11## 12## applymbox [ -c .dotest/msg-number ] [ -q ] mail_archive [Signoff_file]" 13## 14## The patch application may fail in the middle. In which case: 15## (1) look at .dotest/patch and fix it up to apply 16## (2) re-run applymbox with -c .dotest/msg-number for the current one. 17## Pay a special attention to the commit log message if you do this and 18## use a Signoff_file, because applypatch wants to append the sign-off 19## message to msg-clean every time it is run. 20 21query_apply=continue= resume=t 22while case"$#"in0)break;;esac 23do 24case"$1"in 25-q) query_apply=t ;; 26-c)continue="$2"; resume=f;shift;; 27-*) usage ;; 28*)break;; 29esac 30shift 31done 32 33case"$continue"in 34'') 35rm-rf .dotest 36mkdir .dotest 37 git-mailsplit"$1" .dotest ||exit1 38esac 39 40case"$query_apply"in 41t)touch .dotest/.query_apply 42esac 43 44for i in .dotest/0* 45do 46case"$resume,$continue"in 47 f,$i) resume=t;; 48 f,*)continue;; 49*) 50 git-mailinfo .dotest/msg .dotest/patch<$i>.dotest/info ||exit1 51 git-stripspace< .dotest/msg > .dotest/msg-clean 52;; 53esac 54 git-applypatch .dotest/msg-clean .dotest/patch .dotest/info "$2" 55 ret=$? 56if[$ret-ne0];then 57# 2 is a special exit code from applypatch to indicate that 58# the patch wasn't applied, but continue anyway 59[$ret-ne2] &&exit$ret 60fi 61done 62# return to pristine 63rm-fr .dotest