File: templates-build.pl

package info (click to toggle)
base-installer 1.76etch1
  • links: PTS
  • area: main
  • in suites: etch
  • size: 2,212 kB
  • ctags: 109
  • sloc: sh: 1,466; ansic: 380; makefile: 69; perl: 50
file content (58 lines) | stat: -rwxr-xr-x 1,199 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/bin/perl
use strict;
use warnings;

die "must specify arch" if not defined $ARGV[0];
my $arch = $ARGV[0];

my %template;
$template{Fields} = [];
$template{'Description-Long'} = "";

sub print_template {
	foreach ( @{$template{Fields}} ) {
		print $_ . ": ";
		if ( ref $template{$_} eq "HASH" ) {
			if ( defined $template{$_}->{$arch} ) {
				print $template{$_}->{$arch};
			} else {
				print $template{$_}->{default};
			}
		} else {
			print $template{$_};
		}
		print "\n";
	}
	print $template{'Description-Long'} . "\n";

	%template = ();
	$template{Fields} = [];
	$template{'Description-Long'} = "";
}

while ( <STDIN> ) {
	chomp;
	if (m/^$/) {
	    print_template;
	} elsif ( m/^(\w+)(\[(\w+)\])?:\s+(.*)\s*$/ ) {
		if ( defined $3 ) {
			if ( defined $template{$1} and ref $template{$1} ne "HASH" ) {
				local $_;
				$_ = $template{$1};
				$template{$1} = ();
				$template{$1}->{default} = $_;
			} elsif ( not defined $template{$1} ) {
				push ( @{$template{Fields}}, $1 );
			}
			$template{$1}->{$3} = $4;
		} else {
			$template{$1} = $4;
			push ( @{$template{Fields}}, $1 );
		}
	} elsif ( ! m/^#/ ) {
		$template{'Description-Long'} .= $_ . "\n";
	}
}

print_template;