App-MPDSync

 view release on metacpan or  search on metacpan

lib/App/MPDSync.pm  view on Meta::CPAN

    'V|version' => \&show_version,
    'f|from=s'  => \$self->{from},
    't|to=s'    => \$self->{to},
    'h|help'    => \&show_help,
    'v|verbose' => \$self->{verbose},
  );
}

sub vprint {
  my ($self, @message) = @_;
  say @message if $self->{verbose};
}

sub show_help {
  print <<'HELP';
Usage: mpd-sync [options] --from source [--to dest]

Options:
  -f,--from     Source MPD instance (required)
  -t,--to       Destination MPD instance (default localhost)
  -v,--verbose  Be noisy
  --no-daemon   Do not fork to background
  -V,--version  Show version and exit
  -h,--help     Show this help and exit
HELP

  exit;
}

sub show_version {
  say "mpd-sync (App::MPDSync) version $VERSION";
  exit;
}

sub execute {
  my ($self) = @_;

  local @SIG{qw{ INT TERM HUP }} = sub {
    exit 0;
  };

  unless ($self->{from}) {
    say STDERR 'Source MPD not provided';
    show_help;
  }

  my $source = Net::MPD->connect($self->{from});

  if ($self->{daemon}) {
    $self->vprint('Forking to background');
    Proc::Daemon::Init;
  }



( run in 1.030 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )