diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-03-08 10:59:03 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-03-08 10:59:03 -0300 |
commit | 35a54ae2e849cf4044175555a43dc4d6d9a3431f (patch) | |
tree | c220663fc67f52adaa6377b20b46661b03e2fc2c /v4l | |
parent | 30bed02c3cf577df49dca39de95d5f596d3a361c (diff) | |
download | mediapointer-dvb-s2-35a54ae2e849cf4044175555a43dc4d6d9a3431f.tar.gz mediapointer-dvb-s2-35a54ae2e849cf4044175555a43dc4d6d9a3431f.tar.bz2 |
Added a script to make easier to import patches sent by email
From: Mauro Carvalho Chehab <mchehab@infradead.org>
This script is capable to mass import patches on a mbox file, test for it, allow
comment editing and applying it.
This script requires:
1) git, since it uses gitimport to break a mbox into patches;
2) hg mailqueue. It is easier to manage patches using mq, allowing to work with
the patches before applying to the tree.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'v4l')
-rwxr-xr-x | v4l/scripts/hghead.pl | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/v4l/scripts/hghead.pl b/v4l/scripts/hghead.pl new file mode 100755 index 000000000..d0f657c08 --- /dev/null +++ b/v4l/scripts/hghead.pl @@ -0,0 +1,143 @@ +#!/usr/bin/perl +use strict; +use Date::Parse; + +################################################################# +# analyse diffs + +my $in = shift; +my $line; +my $subject; +my $from=0; +my $sub_ok=0; +my $init=0; +my $num=0; +my $maint_ok=0; +my $noblank=1; +my $maintainer_name=$ENV{CHANGE_LOG_NAME}; +my $maintainer_email=$ENV{CHANGE_LOG_EMAIL_ADDRESS}; +my $from=""; +my $body=""; +my $signed=""; + +open IN, "<$in"; + +while ($line = <IN>) { + if ($line =~ m/Index.*/) { + last; + } + if ($line =~ m/^diff .*/) { + last; + } + if ($line =~ m/^\-\-\- .*/) { + last; + } + if ($line =~ m/^\-\-\-.*/) { + last; + } + if ($line =~ m/^\+\+\+ .*/) { + last; + } + + if ($line =~ m/^Date:\s*(.*)/) { + my $time = str2time($1); +# my $timestr = gmtime($time); + + if ($time) { + print "# Date: $time\n"; + } + next; + } + if ($line =~ m/^From:/) { + if ($line =~ m/^From:[\s\"]*([^\"]*)[\s\"]*<(.*)>/) { + if ($1 eq "") { + next; + } + my $name=$1; + my $email=$2; + $name =~ s/\s+$//; + $email =~ s/\s+$//; + $from= "From: $name <$email>\n"; + next; + } + print "Bad formed author\n"; + die; + } + + if ($line =~ m/^Subject:\s*(.*)\n/) { + $subject=$1; + next; + } + + if ($line =~ m;^ .*\/.*\| *[0-9]*;) { + next; + } + if ($line =~m/\d+\s*file.* changed, /) { + next; + } + + if ($line =~ m/^Signed-off-by:.*/) { + $noblank=1; + if ($line =~ m/$maintainer_name/) { + $maint_ok=1; + } + + $signed="$signed$line"; + next; + } + if ($line =~ m/^Acked-by:.*/) { + print $line; + next; + } + + if ($line =~ m/^[a-zA-Z\-]*:/) { + if ($line =~ m/Changeset:\s*(.*)\n/) { + $num=$1; + } + print "# $line"; + next; + } + + if ($line =~ m|^(V4L\/DVB\s*\(.+\)\s*:.*)\n|) { + $subject=$1; + $line="\n"; + } + + if ($sub_ok == 0) { + $sub_ok=1; + substr( $subject, 0, 1 ) = uc (substr ($subject, 0, 1)); + if ($subject =~ m|V4L\/DVB\s*(.+)|) { + print "$1\n\n"; + } else { + print "$subject\n\n"; + } + if ($line =~ m/^\n/) { + next; + } + } + + if ($noblank) { + if ($line =~ m/^\n/) { + next; + } + } + if (!$init) { + $init=1; + $noblank=0; + } + $body="$body$line"; +} +close IN; + +if ($from eq "") { + print "Bad formed author\n"; + die; +} +if (!$maint_ok) { + $signed=$signed."Signed-off-by: $maintainer_name <$maintainer_email>\n"; +} +$body=~s/\n+$//; +$body=~s/^\n+$//; + +print "$from\n$body\n\n$signed"; + |