summaryrefslogtreecommitdiffstats
path: root/debian/platform-subst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/platform-subst')
-rwxr-xr-xdebian/platform-subst38
1 files changed, 38 insertions, 0 deletions
diff --git a/debian/platform-subst b/debian/platform-subst
new file mode 100755
index 0000000..436ffca
--- /dev/null
+++ b/debian/platform-subst
@@ -0,0 +1,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($_);
+ }
+}