Change 11704 by nick@camel-linux on 2001/08/17 11:47:54

        Mail -> change script (pre-alpha)

Affected files ...

... //depot/perl/Porting/apply#1 add

Differences ...

==== //depot/perl/Porting/apply#1 (text) ====
Index: perl/Porting/apply
--- perl/Porting/apply.~1~      Fri Aug 17 06:00:05 2001
+++ perl/Porting/apply  Fri Aug 17 06:00:05 2001
@@ -0,0 +1,71 @@
+#!/usr/bin/perl -w
+my $file = pop(@ARGV);
+my %meta;
+$ENV{'P4PORT'} = 'bactrian:1667';
+$ENV{'P4CLIENT'} = 'camel-linux';
+open(FILE,$file) || die "Cannot open $file:$!";
+while (<FILE>)
+ {
+  if (/^(From|Subject|Date|Message-ID):(.*)$/i)
+   {
+    $meta{lc($1)} = $2;
+   }
+ }
+my @results = `patch @ARGV <$file 2>&1`;
+warn @results;
+my $code = $?;
+warn "$code from patch\n";
+foreach (@results)
+ {
+  if (/patching\s+file\s*(.*?)\s*$/)
+   {
+    push(@edit,$1);
+   }
+ }
+my @have = `p4 have @edit`;
+
+if ($code == 0)
+ {
+  System("p4 edit @edit");
+  open(PIPE,"|p4 change -i") || die "Cannot open pipe to p4:$!";
+  print PIPE "Change: new\n";
+  print PIPE "Description:\n";
+  foreach my $key (qw(Subject From Date Message-Id))
+   {
+    if (exists $meta{lc($key)})
+     {
+      print PIPE "\t$key: ",$meta{lc($key)},"\n";
+      print "$key: ",$meta{lc($key)},"\n";
+     }
+   }
+  print PIPE "Files:\n";
+  foreach (@have)
+   {
+    if (m,^(.*)#,)
+     {
+      print PIPE "\t$1\n"
+     }
+   }
+  close(PIPE);
+ }
+else
+ {
+  if (@edit)
+   {
+    System("p4 revert @edit");
+   }
+ }
+
+sub System
+{
+ my $cmd = join(' ',@_);
+ warn "$cmd\n";
+ if (fork)
+  {
+   wait;
+  }
+ else
+  {
+   _exit(exec $cmd);
+  }
+}
End of Patch.

Reply via email to