This file is indexed.

/usr/bin/rpld-ctl is in roarplaylistd-tools 0.1.9-3.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#!/usr/bin/perl

#      Copyright (C) Philipp 'ph3-der-loewe' Schafft - 2010-2012
#
#  This file is part of RoarAudio PlayList Daemon,
#  a playlist management daemon for RoarAudio.
#  See README for details.
#
#  This file is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License version 3
#  as published by the Free Software Foundation.
#
#  RoarAudio is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this software; see the file COPYING.  If not, write to
#  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

use strict;
use Audio::RPLD;

my $server;
my $queue;

my ($cmd, $arg);

my $ret;

while ($_ = shift(@ARGV)) {
 if ( $_ =~ /^--/ ) {
  if ( $_ eq '--server' ) {
   $server = shift(@ARGV);
  } elsif ( $_ eq '--queue' ) {
   $queue = shift(@ARGV);
  } elsif ( $_ eq '--help' ) {
   usage();
   exit(0);
  } else {
   print STDERR "Invalid option: $_\n";
   usage();
   exit(1);
  }
 } elsif ( !defined($cmd) ) {
  $cmd = lc($_);
 } elsif ( !defined($arg) ) {
  $arg = $_;
 } else {
  print STDERR "Invalid extra parameter: $_\n";
  usage();
  exit(1);
 }
}

if ( !defined($cmd) ) {
 print STDERR "Error: No command given.\n";
 usage();
 exit(1);
}

my $rpld = Audio::RPLD->new();

if ( defined($server) ) {
 $rpld->connect($server);
} else {
 $rpld->connect_default();
}
$rpld->is_connected() or die;

if ( defined($queue) ) {
 $rpld->setqueue($queue) or die;
}

# initial commands:
if ( $cmd eq 'pause' ) {
 $ret = $rpld->pause();
} elsif ( $cmd eq 'unpause' ) {
 $ret = $rpld->unpause();
} elsif ( $cmd eq 'togglepause' ) {
 $ret = $rpld->togglepause();
} elsif ( $cmd eq 'volume' ) {
 $ret = $rpld->setvolume($arg);

# playback:
} elsif ( $cmd eq 'play' ) {
 $ret = $rpld->play();
} elsif ( $cmd eq 'stop' ) {
 $ret = $rpld->stop();
} elsif ( $cmd eq 'next' ) {
 $ret = $rpld->next();
} elsif ( $cmd eq 'prev' ) {
 $ret = $rpld->prev();

# store:
} elsif ( $cmd eq 'store' ) {
 $ret = $rpld->store();

# playlists:
} elsif ( $cmd eq 'addplaylist' ) {
 $ret = $rpld->addplaylist($arg);
} elsif ( $cmd eq 'delplaylist' ) {
 $ret = $rpld->delplaylist($arg);

# other:
} else {
 die 'Unknown command';
}

$rpld->disconnect();

exit(0);

sub usage {
 print "Usage: $0 [--server SERVER] COMMAND [arg]\n";
 print "Or:    $0 --help\n";
 print "\n";
 print <<'__EOF__';
Options:
    --help              - Show this help.
    --server SERVER     - Set server address.
    --queue  QUEUE      - Set default queue for this process.

Commands:
 pause                  - Pause playback
 unpause                - Unpause playback
 togglepause            - If playback is paused unpause, if not pause.
 volume VOL             - Set volume to VOL
 play                   - Start playback
 stop                   - Stop playback
 next                   - Play next track
 prev                   - Play previous track
 store                  - Save current state to store
 addplaylist PLAYLIST   - Add a new playlist
 delplaylist PLAYLIST   - Delete a playlist
__EOF__
}

#ll