git.shiar.nl
/
wormy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
parse-wormedit: open output file for format override
[wormy.git]
/
parse-wormedit
diff --git
a/parse-wormedit
b/parse-wormedit
index aa220513657bfdaf49507b9311e97ea627334025..77bfc8e75b90c6991f2c50695803bb0d5478c557 100755
(executable)
--- a/
parse-wormedit
+++ b/
parse-wormedit
@@
-52,24
+52,27
@@
else {
die "Unrecognised file type\n";
}
die "Unrecognised file type\n";
}
+my $format = $opt{format}; # override distinct from image fallback
if ($opt{output}) {{
# derive format from file extension
if ($opt{output}) {{
# derive format from file extension
- if ($opt{output} =~ /\.(yaml|json|txt)$/) {
- $opt{format} //= $1
+ $format //= $1 if $opt{output} =~ /\.([^.]+)$/;
+
+ if ($format ~~ [qw{ yaml json txt }]) {
+ # redirect standard output to given file
+ open my $output, '>', $opt{output}
+ or die "Cannot output to '$opt{output}': $!";
+ select $output;
}
else {
# images are written directly to file
}
else {
# images are written directly to file
- last;
}
}
-
- # redirect standard output to given file
- open my $output, '>', $opt{output}
- or die "Cannot output to '$opt{output}': $!";
- select $output;
}}
}}
+else {
+ $format //= 'txt';
+}
# output with user-preferred formatting
# output with user-preferred formatting
-given ($
opt{format}
) {
+given ($
format
) {
when ('json') {
require JSON;
say JSON->new->encode($data);
when ('json') {
require JSON;
say JSON->new->encode($data);
@@
-166,13
+169,13
@@
default {
my $img = Games::Wormy::Render->composite(
map { $data->{levels}->[$_] } @request
) or die "empty result for levels\n";
my $img = Games::Wormy::Render->composite(
map { $data->{levels}->[$_] } @request
) or die "empty result for levels\n";
- if ($
opt{format}
~~ 'pbm') {
+ if ($
format
~~ 'pbm') {
$img = $img->to_paletted({make_colors => 'mono'});
$opt{format} = 'pnm';
}
$img->write(
$opt{output} ? (file => $opt{output}) : (fh => \*STDOUT),
$img = $img->to_paletted({make_colors => 'mono'});
$opt{format} = 'pnm';
}
$img->write(
$opt{output} ? (file => $opt{output}) : (fh => \*STDOUT),
- type => $opt{format}
// 'pnm'
,
+ type => $opt{format},
) or die $img->errstr;
}
}
) or die $img->errstr;
}
}