projects
/
ssic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
825af62
)
Add -D option.
author
P. J. McDermott
<pjm@nac.net>
Sun, 22 Sep 2013 18:45:25 +0000
(14:45 -0400)
committer
P. J. McDermott
<pjm@nac.net>
Sun, 22 Sep 2013 18:45:25 +0000
(14:45 -0400)
src/ssic.pl
patch
|
blob
|
history
diff --git
a/src/ssic.pl
b/src/ssic.pl
index b6876d5036ef22fe6d323c93ae656f4604f464fc..117864b81bceb95982121cecb9715bc93f10b2a4 100644
(file)
--- a/
src/ssic.pl
+++ b/
src/ssic.pl
@@
-18,6
+18,7
@@
sub main
"no_getopt_compat");
if (not GetOptions(\%opts,
"o=s",
"no_getopt_compat");
if (not GetOptions(\%opts,
"o=s",
+ "D=s%",
"h|help",
"V|version",
)) {
"h|help",
"V|version",
)) {
@@
-41,12
+42,12
@@
sub main
if ($#ARGV gt 0) {
error(4, "Cannot specify -o with multiple files\n");
}
if ($#ARGV gt 0) {
error(4, "Cannot specify -o with multiple files\n");
}
- compile($ARGV[0], $opts{'o'});
+ compile($ARGV[0], $opts{'o'}
, $opts{'D'}
);
} else {
for $input (@ARGV) {
$output = $input;
$output =~ s/\.[^.]+$/.html/;
} else {
for $input (@ARGV) {
$output = $input;
$output =~ s/\.[^.]+$/.html/;
- compile($input, $output);
+ compile($input, $output
, $opts{'D'}
);
}
}
}
}
}
}
@@
-64,9
+65,10
@@
sub help
usage($fh);
print("Options:\n");
usage($fh);
print("Options:\n");
- print(" -o <output> Place the output into <output>\n");
- print(" -h, --help Display this information\n");
- print(" -V, --version Display compiler version information\n");
+ print(" -D <name>=<value> Set the variable <name> to <value>\n");
+ print(" -o <output> Place the output into <output>\n");
+ print(" -h, --help Display this information\n");
+ print(" -V, --version Display compiler version information\n");
}
sub version
}
sub version
@@
-99,10
+101,12
@@
sub error
sub compile
{
sub compile
{
- my ($input, $output) = @_;
+ my ($input, $output
, $vars
) = @_;
my $input_fh;
my $output_fh;
my $ssi;
my $input_fh;
my $output_fh;
my $ssi;
+ my $var_name;
+ my $var_value;
if ($input eq $output) {
error(4, "Input and output files are equal\n");
if ($input eq $output) {
error(4, "Input and output files are equal\n");
@@
-114,6
+118,10
@@
sub compile
$CGI::SSI::DEBUG = 0;
$ssi = CGI::SSI->new();
$CGI::SSI::DEBUG = 0;
$ssi = CGI::SSI->new();
+ while (($var_name, $var_value) = each(%{$vars})) {
+ $ssi->set($var_name => $var_value);
+ }
+
print($output_fh $ssi->process(<$input_fh>));
}
print($output_fh $ssi->process(<$input_fh>));
}