#!/usr/bin/perl use strict; use warnings; use utf8::all; use App::MPD::Feeder; use Log::Any qw($log); use Log::Any::Adapter Stderr => log_level => 'error'; my $feeder = App::MPD::Feeder->new(); if (@ARGV) { my $cmd = shift @ARGV; if ($cmd eq 'dump-config') { die "dump-config command accepts no arguments\n" if @ARGV; $feeder->opt->dump; exit; } if ( $cmd eq 'add-unwanted-artist' ) { die "Missing command arguments\n" unless @ARGV; $feeder->set_db_needs_update(0); for my $artist (@ARGV) { if ( $feeder->db_add_unwanted_artist($artist) ) { $log->info("Artist '$artist' added to the unwanted list\n"); } else { $log->warn("Artist '$artist' already in the unwanted list\n"); } } exit; } if ( $cmd eq 'del-unwanted-artist' ) { die "Missing command arguments\n" unless @ARGV; $feeder->set_db_needs_update(0); for my $artist (@ARGV) { if ( $feeder->db_del_unwanted_artist($artist) ) { $log->info("Artist '$artist' deleted from the unwanted list\n"); } else { $log->warn("Artist '$artist' is not in the unwanted list\n"); } } exit; } if ( $cmd eq 'add-unwanted-album' ) { die "NOT IMPLEMENTED\n"; } if ( $cmd eq 'one-shot' ) { die "one-shot command accepts no arguments\n" if @ARGV; $feeder->queue_songs(undef, sub { exit }); $feeder->mpd->loop->run; } elsif ( $cmd eq 'single' ) { die "single command accepts no arguments\n" if @ARGV; $feeder->queue_songs(1, sub { exit }); $feeder->mpd->loop->run; } else { die "Unknown command '$cmd'"; } } $feeder->run_loop;