Add basic script to create sysvinit rc-scripts from metainit files
[darcs-mirror-metainit.git] / Parse.pm
1 package Parse
2
3 sub parse {
4     my $fh = shift;
5
6     my %parsed;
7     my $lastkey;
8     while (<$fh>) {
9         #last if /^$/;
10         if (my ($key, $value) = m/^([^ ].*): (.*)/) {
11             $parsed{$key} = $value;
12             $lastkey = $key;
13         }
14         elsif ($lastkey) {
15             s/^ //;
16             s/^\.$//;
17             $parsed{$lastkey} .= $_;
18         } else {
19             die "Cannot parse $!";
20         }
21     }
22
23     if (not exists $parsed{Description}) {
24         $parsed{Description} = $parsed{Name}
25     }
26
27     ($parsed{Path}, $parsed{Args}) = split(/\s/,$parsed{Exec});
28
29     return %parsed;
30 }
31