summaryrefslogtreecommitdiffstats
path: root/debian/platform-subst
blob: 436ffca5217f01222ac981b7427b06754ffac4a3 (plain)
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
#! /usr/bin/perl
use warnings;
use strict;

my %subst = ();
while ($ARGV[0] =~ /(.*?)=(.*)/) {
	$subst{$1} = $2;
	shift;
}

die "no package specified\n" unless exists $subst{PACKAGE};
(my $package = $subst{PACKAGE}) =~ s/-(?:bin|dbg)$//;

my $grub_dir_path = "debian/tmp-$package/usr/lib/grub";
opendir my $grub_dir, $grub_dir_path or die "can't opendir $grub_dir_path: $!";
my @cpu_platforms = grep { !/^\./ } readdir $grub_dir;
closedir $grub_dir;

$subst{FIRST_CPU_PLATFORM} = $cpu_platforms[0];

sub emit ($) {
	my $line = shift;
	while (my ($key, $value) = each %subst) {
		$line =~ s/\@$key\@/$value/g;
	}
	print $line;
}

while (<>) {
	if (/\@CPU_PLATFORM\@/) {
		for my $cpu_platform (@cpu_platforms) {
			(my $line = $_) =~ s/\@CPU_PLATFORM\@/$cpu_platform/g;
			emit($line);
		}
	} else {
		emit($_);
	}
}