]> rtime.felk.cvut.cz Git - socketcan-devel.git/blob - mkpatch
Remove everything from version.h except definition of RCSID().
[socketcan-devel.git] / mkpatch
1 #!/usr/bin/perl
2 #
3 # $Id$
4 #
5 # Generate a kernel patch to add socketcan to a kernel src tree.
6 # The list of files to be added is read from stdin.
7
8 use POSIX qw(strftime);
9
10 $version = shift;
11
12 if (-r "patches/$version.diff") {
13     copy_file("patches/$version.diff");
14 }
15
16 while (<>) {
17     next if (/^#/);
18     my ($file, $n) = split;
19     my ($name);
20     if ($n eq "") {
21         $name = $file;
22     } else {
23         $name = $file;
24         $name =~ s/[^\/]*$/$n/;
25     }
26     $name =~ s/[^\/]*\/[^\/]*\///;
27     
28     add_file($file, $name);
29 }
30
31 sub copy_file {
32     my ($file) = @_;
33
34     open file, "$file" || die "open $file\n";
35     while (<file>) {
36         print;
37     }
38     close file;
39 }
40
41 sub add_file {
42     my ($file, $name) = @_;
43     my (@lines, $count, $ts, $mtime);
44
45     open file, "./kv $version $file |" || die "open $file\n";
46     @lines = <file>;
47     $count = $#lines + 1;
48     $mtime = (stat($file))[9];
49     $ts = strftime "%F %T", gmtime((stat($file))[9]);
50
51     for $i (0..$#lines) {
52         if ($lines[$i] =~ /include.*linux\/can\/version\.h/) {
53             undef($lines[$i]);
54             $count--;
55         }
56         if ($lines[$i] =~ /RCSID/) {
57             undef($lines[$i]);
58             $count--;
59             while ($lines[++$i] eq "\n") {
60                 undef($lines[$i]);
61                 $count--;
62             }
63         }
64     }
65
66     print "--- a/$name 1970-01-01 00:00:00\n";
67     print "+++ b/$name $ts\n";
68     print "@@ -0,0 +1,$count @@\n";
69     for (@lines) {
70         print "+$_" if (defined($_));
71     }
72     close file;
73 }