#!/usr/bin/env perl
#
# Copyright © 2012 Nick Bowler
#
# Simple program to send a command to MPD.  The result is printed to standard
# output.
#
# License WTFPL2: Do What The Fuck You Want To Public License, version 2.
# This is free software: you are free to do what the fuck you want to.
# There is NO WARRANTY, to the extent permitted by law.

use strict;

use utf8;
use encoding 'utf8';
use IO::Socket::INET6;

my $host = $ENV{MPD_HOST} // "localhost";
my $port = $ENV{MPD_PORT} // 6600;

my $sock = new IO::Socket::INET6(
	PeerAddr => $host,
	PeerPort => $port,
	Proto    => 'tcp',
) or die "failed to connect to MPD: $!";
binmode($sock, ":utf8");

if (!(<$sock> =~ /^OK MPD ([0-9]+)\.([0-9]+)\.([0-9]+)$/)) {
	die "MPD failed to announce version: $!";
}

print $sock join(' ', @ARGV), "\n";
while (<$sock>) {
	last if (/^OK/);
	print;
	exit 1 if (/^ACK/);
}

print $sock "close\n";
close $sock;
