A very minimal script, but you can feed it a .dsc file, and it should know what to...
[maemian] / maemian
1 #!/usr/bin/perl
2
3 # Copyright (C) Jeremiah C. Foster 2009, based on:
4
5 #   Lintian -- Debian package checker
6 # Copyright (C) 1998 Christian Schwarz and Richard Braakman
7
8 # This program is free software.  It is distributed under the terms of
9 # the GNU General Public License as published by the Free Software
10 # Foundation; either version 2 of the License, or (at your option) any
11 # later version.
12 #
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 # GNU General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with this program.  If not, you can find it on the World Wide
20 # Web at http://www.gnu.org/copyleft/gpl.html, or write to the Free
21 # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
22 # MA 02110-1301, USA.
23
24 =head1 NAME
25
26 maemian - Maemo package checker
27
28 =head1 EXAMPLE
29
30 maemian -i file.dsc
31
32 =cut
33
34 use strict;
35 use warnings;
36 use Getopt::Long;
37 use Carp;
38 # Cannot yet pull in all of Lintian
39 # unshift @INC, "/home/jeremiah/maemian/lib";
40 # require Maemian::Output;
41 # my $lintout = new Maemian::Output;
42
43 # --- Command line options
44 my $inputfile;             # --- A file passed to maemian 
45 GetOptions ("inputfile|i=s" => \$inputfile);
46
47 sub file_tests {
48   use File::Basename;
49   my $path = shift;
50   if (-r $path) {
51     my ($filename, $dirs) = fileparse($path);
52     if ($filename =~ /maemo/) {
53       print "W: Any use of the word \"maemo\" is subject to trademark.\n";
54     }
55
56     # --- Open file into an array
57     open my $file, '<', $path or die "Cannot open file: $!\n";
58     my @lines = <$file>;
59     close $file;
60
61     my ($field, $maintainer) = map { split /: / } grep /Maintainer/, @lines;
62     chomp($maintainer);
63     if ($maintainer =~ /(ubuntu|debian)/i) {
64       print "W: Maintainer email addres ($maintainer) might be the same as upstream.\n";
65     }
66     else {
67       print "N: $maintainer\n";
68     }
69     if (grep /BEGIN PGP SIGNED MESSAGE/, @lines) {
70       print "N: $filename is signed\n";
71     }
72     # print "\n$dirs\n$filename\n";
73   }
74   else {
75     croak "File not readable: $!\n";
76   }
77 }
78
79 if ($inputfile) {
80   file_tests($inputfile);
81 } else {
82   croak "No input file found: $!\n";
83 }