From 994838b70f9840191386291202537f03219566bf Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Sat, 21 Jul 2018 15:10:00 +0100 Subject: [PATCH] bin/disorder-notify: Abstract out invoking the `disorder' client. --- bin/disorder-notify | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/bin/disorder-notify b/bin/disorder-notify index 5c9e12d..6d540dc 100755 --- a/bin/disorder-notify +++ b/bin/disorder-notify @@ -17,6 +17,16 @@ sub notify ($$) { waitpid $kid, 0; } +sub cmd (@) { + my @args = @_; + open my $f, "-|", "disorder", @args; + chomp (my @r = <$f>); + close $f; + if (wantarray) { return @r; } + elsif (@r == 1) { return $r[0]; } + else { return "??? multiple lines"; } +} + for (;;) { open my $log, "-|", "disorder", "log"; LINE: while (<$log>) { @@ -65,11 +75,8 @@ for (;;) { } elsif ($what eq playing) { my $track = $f[2]; my %p; - for my $p ("artist", "album", "title") { - open my $f, "-|", "disorder", "part", $track, "display", $p; - chomp ($p{$p} = <$f>); - close $f; - } + for my $p ("artist", "album", "title") + { $p{$p} = cmd "part", $track, "display", $p; } if ($p{artist} =~ /^[A-Z]$/) { $p{artist} = $p{album}; $p{album} = undef; } elsif ($p{artist} eq "share" && $p{album} eq "disorder") -- 2.11.0