#!/usr/bin/env perl
#
-# Copyright © 2012,2019-2020 Nick Bowler
+# Copyright © 2012,2019-2021 Nick Bowler
#
# Send commands to MPD. Each command-line argument is quoted as necessary
# so it appears as a single argument at the protocol level. The result is
sub print_version {
print <<EOF
mpdexec.pl 0.8
-Copyright © 2019 Nick Bowler
+Copyright © 2021 Nick Bowler
License GPLv3+: GNU General Public License version 3 or any later version.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
}
sub print_usage {
- my $fh = $_[1] // *STDERR;
+ my ($fh) = (@_, *STDERR);
print $fh "Usage: $0 [options] [command ...]\n";
- print "Try $0 --help for more information.\n" unless (@_ > 0);
+ print $fh "Try $0 --help for more information.\n" unless (@_ > 0);
}
sub print_help {
written. If FILE is specified, the data is written there.
Otherwise, --quiet is automatically enabled and the data
goes to standard output.
- --download Enable automatic sequencing of albumart commands; if this
- option is specified, albumart commands without offsets will
- be expanded into multiple commands in order to download the
- entire file.
+ --download Enable automatic sequencing of albumart and readpicture
+ commands; if this option is specified, such commands
+ without offsets will be expanded into multiple commands
+ in order to download the entire file.
--ignore-errors In batch mode, continue submitting commands after errors.
-V, --version Print a version message and then exit.
-H, --help Print this message and then exit.
return $rc;
}
+my %downloadcmds = map { $_ => 1 } ( "albumart", "readpicture" );
sub mpd_exec {
my $downloadseq;
- # special case for "albumart"; if no offset is specified
- # (invalid command) we synthesize a sequence of albumart
+ # special case for "albumart" and "readpicture"; if no offset is
+ # specified (invalid command) we synthesize a sequence of albumart
# commands to retrieve the entire file.
- if ($download && $_[0] eq "albumart" && @_ == 2) {
+ if ($download && $downloadcmds{$_[0]} && @_ == 2) {
$_[2] = 0;
$downloadseq = 2;
}