File Coverage

blib/lib/Dpkg/Package.pm
Criterion Covered Total %
statement 20 20 100.0
branch 6 6 100.0
condition 2 2 100.0
subroutine 5 5 100.0
pod 0 1 0.0
total 33 34 97.0


line stmt bran cond sub pod time code
1             # Copyright © 2006 Frank Lichtenheld
2             # Copyright © 2007,2012 Guillem Jover
3             #
4             # This program is free software; you can redistribute it and/or modify
5             # it under the terms of the GNU General Public License as published by
6             # the Free Software Foundation; either version 2 of the License, or
7             # (at your option) any later version.
8             #
9             # This program is distributed in the hope that it will be useful,
10             # but WITHOUT ANY WARRANTY; without even the implied warranty of
11             # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12             # GNU General Public License for more details.
13             #
14             # You should have received a copy of the GNU General Public License
15             # along with this program. If not, see .
16              
17             package Dpkg::Package;
18              
19 2     2   744 use strict;
  2         5  
  2         59  
20 2     2   10 use warnings;
  2         4  
  2         119  
21              
22             our $VERSION = '0.01';
23             our @EXPORT = qw(
24             pkg_name_is_illegal
25             );
26              
27 2     2   12 use Exporter qw(import);
  2         3  
  2         51  
28              
29 2     2   438 use Dpkg::Gettext;
  2         5  
  2         495  
30              
31             sub pkg_name_is_illegal($) {
32 10   100 10 0 504 my $name = shift // '';
33              
34 10 100       29 if ($name eq '') {
35 2         6 return g_('may not be empty string');
36             }
37 8 100       34 if ($name =~ m/[^-+.0-9a-z]/op) {
38 3         11 return sprintf(g_("character '%s' not allowed"), ${^MATCH});
39             }
40 5 100       21 if ($name !~ m/^[0-9a-z]/o) {
41 1         3 return g_('must start with an alphanumeric character');
42             }
43              
44 4         11 return;
45             }
46              
47             1;