File: | Dpkg/Getopt.pm |
Coverage: | 97.5% |
line | stmt | bran | cond | sub | pod | time | code |
---|---|---|---|---|---|---|---|
1 | # Copyright © 2014 Guillem Jover <guillem@debian.org> | ||||||
2 | # | ||||||
3 | # This program is free software; you can redistribute it and/or modify | ||||||
4 | # it under the terms of the GNU General Public License as published by | ||||||
5 | # the Free Software Foundation; either version 2 of the License, or | ||||||
6 | # (at your option) any later version. | ||||||
7 | # | ||||||
8 | # This program is distributed in the hope that it will be useful, | ||||||
9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||||
11 | # GNU General Public License for more details. | ||||||
12 | # | ||||||
13 | # You should have received a copy of the GNU General Public License | ||||||
14 | # along with this program. If not, see <https://www.gnu.org/licenses/>. | ||||||
15 | |||||||
16 | package Dpkg::Getopt; | ||||||
17 | |||||||
18 | 2 2 2 | 4 0 27 | use strict; | ||||
19 | 2 2 2 | 2 2 57 | use warnings; | ||||
20 | |||||||
21 | our $VERSION = '0.02'; | ||||||
22 | our @EXPORT = qw( | ||||||
23 | normalize_options | ||||||
24 | ); | ||||||
25 | |||||||
26 | 2 2 2 | 3 2 186 | use Exporter qw(import); | ||||
27 | |||||||
28 | sub normalize_options | ||||||
29 | { | ||||||
30 | 4 | 0 | 7 | my (%opts) = @_; | |||
31 | 4 | 4 | my $norm = 1; | ||||
32 | 4 | 1 | my @args; | ||||
33 | |||||||
34 | @args = map { | ||||||
35 | 15 | 39 | if ($norm and m/^(-[A-Za-z])(.+)$/) { | ||||
36 | 3 | 2 | ($1, $2) | ||||
37 | } elsif ($norm and m/^(--[A-Za-z-]+)=(.*)$/) { | ||||||
38 | 2 | 3 | ($1, $2) | ||||
39 | } else { | ||||||
40 | 10 | 14 | $norm = 0 if defined $opts{delim} and $_ eq $opts{delim}; | ||||
41 | 10 | 9 | $_; | ||||
42 | } | ||||||
43 | 4 4 | 4 3 | } @{$opts{args}}; | ||||
44 | |||||||
45 | 4 | 8 | return @args; | ||||
46 | } | ||||||
47 | |||||||
48 | 1; |