forked from livecode/livecode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathencode_version.pl
More file actions
executable file
·46 lines (37 loc) · 1.04 KB
/
encode_version.pl
File metadata and controls
executable file
·46 lines (37 loc) · 1.04 KB
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
#!/usr/bin/env perl
use warnings;
sub trim
{
my $trimmed = $_[0];
$trimmed =~ s/^\s+|\s+$//g ;
return $trimmed;
}
my $gitRevision = $ARGV[0];
my $inputDir = $ARGV[1];
my $outputDir = $ARGV[2];
# Open the file containing the variables
open VARIABLES, "<" . $inputDir . "/../version"
or die "Could not open version information: $!";
my @variables = <VARIABLES>;
close VARIABLES;
# Open the template header
open TEMPLATE, "<" . $inputDir . "/include/revbuild.h.in"
or die "Could not open template header: $!";
my @template = <TEMPLATE>;
close TEMPLATE;
# Flatten the input
my $output = join('', @template);
# Replace each instance of the variable in the template file
foreach $variable (@variables)
{
my @parts = split('=', $variable);
my $varName = trim($parts[0]);
my $varValue = trim($parts[1]);
$output =~ s/\$${varName}/${varValue}/g;
}
$output =~ s/\$GIT_REVISION/${gitRevision}/g;
# Create the output file
open OUTPUT, ">" . $outputDir . "/include/revbuild.h"
or die "Could not open output file: $!";
print OUTPUT $output;
close OUTPUT;