Playlist event log support for server and eclient.
[disorder] / doc / disorder.1.in
CommitLineData
460b9539 1.\"
5aff007d 2.\" Copyright (C) 2004-2008 Richard Kettlewell
460b9539 3.\"
4.\" This program is free software; you can redistribute it and/or modify
5.\" it under the terms of the GNU General Public License as published by
6.\" the Free Software Foundation; either version 2 of the License, or
7.\" (at your option) any later version.
8.\"
9.\" This program is distributed in the hope that it will be useful, but
10.\" WITHOUT ANY WARRANTY; without even the implied warranty of
11.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12.\" General Public License for more details.
13.\"
14.\" You should have received a copy of the GNU General Public License
15.\" along with this program; if not, write to the Free Software
16.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
17.\" USA
18.\"
19.TH disorder 1
20.SH NAME
21disorder \- DisOrder jukebox client
22.SH SYNOPSIS
23.B disorder
24.RI [ OPTIONS ]
0d350ff0 25.RB [ \-\- ]
460b9539 26.RI [ COMMANDS ...]
460b9539 27.SH DESCRIPTION
460b9539 28.B disorder
29is used to query the \fBdisorderd\fR(8) daemon from the command line.
30It may be used to request tracks, scratch tracks, query the current
31state, etc, and by an administrator to shutdown or reconfigure the
32daemon.
33.PP
34If no commands are specified then \fBdisorder\fR connects to the
c0c23a60
RK
35daemon and then immediately disconnects.
36This can be used to test whether the daemon is running.
37Otherwise, it executes the commands specified.
3d1452ab
RK
38.PP
39This man page documents the command-line client.
40See \fBdisorderd\fR (8) for information about the server process
41and \fBdisorder_config\fR (5) for documentation of the configuration file.
460b9539 42.SH OPTIONS
43.TP
0d350ff0 44.B \-\-config \fIPATH\fR, \fB\-c \fIPATH
c0c23a60
RK
45Set the configuration file.
46The default is
460b9539 47.IR pkgconfdir/config .
48.TP
0d350ff0 49.B \-\-debug\fR, \fB\-d
460b9539 50Enable debugging.
51.TP
0d350ff0 52.B \-\-help\fR, \fB\-h
460b9539 53Display a usage message.
54.TP
0d350ff0 55.B \-\-version\fR, \fB\-V
460b9539 56Display version number.
57.TP
0d350ff0 58.B \-\-help\-commands\fR, \fB\-H
460b9539 59List all known commands.
60.SH COMMANDS
61.TP
90ad6c6e 62.B adduser \fIUSERNAME PASSWORD\fR [\fIRIGHTS\fR]
c0c23a60
RK
63Create a new user.
64If \fIRIGHTS\fR is not specified then the \fBdefault_rights\fR
65setting from the server's configuration file applies.
0f55e905 66.TP
90ad6c6e
RK
67.B authorize \fIUSERNAME\fR [\fIRIGHTS\fR]
68Create user \fIUSERNAME\fR with a random password.
69User \fIUSERNAME\fR must be a UNIX login user (not just any old string).
c0c23a60
RK
70If \fIRIGHTS\fR is not specified then the \fBdefault_rights\fR
71setting from the server's configuration file applies.
e86021e4 72.IP
90ad6c6e 73\fI~USERNAME/.disorder/passwd\fR is created with the password in it, so the new
5b14453f
RK
74user should be able to log in immediately.
75.IP
76If writing the \fIpasswd\fR file fails then the user will already have been
c0c23a60
RK
77created in DisOrder's user database.
78Use \fBdisorder deluser\fR to remove them before trying again.
e86021e4 79.TP
90ad6c6e 80.B deluser \fIUSERNAME\fR
a55c70c7
RK
81Delete a user.
82.TP
460b9539 83.B dirs \fIDIRECTORY\fR [\fB~\fIREGEXP\fR]
84List all the directories in \fIDIRECTORY\fR.
85.IP
c0c23a60
RK
86An optional regexp may be specified, marked with an initial \fB~\fR.
87Only directories with a basename matching the regexp will be returned.
460b9539 88.TP
89.B disable
0f55e905 90Disable playing after the current track finishes.
460b9539 91.TP
90ad6c6e 92.B edituser \fIUSERNAME PROPERTY VALUE
a55c70c7
RK
93Set some property of a user.
94.TP
460b9539 95.B enable
96(Re-)enable playing.
97.TP
98.B files \fIDIRECTORY\fR [\fB~\fIREGEXP\fR]
99List all the files in \fIDIRECTORY\fR.
100.IP
c0c23a60
RK
101An optional regexp may be specified, marked with an initial \fB~\fR.
102Only files with a basename matching the regexp will be returned.
460b9539 103.TP
104.B get \fITRACK\fR \fIKEY\fR
105Display the preference \fIKEY\fR for \fITRACK\fR.
3d1452ab 106See \fBdisorder_preferences\fR (5).
460b9539 107.TP
0d350ff0 108.B get\-global \fIKEY\fR
460b9539 109Get a global preference.
3d1452ab 110See \fBdisorder_preferences\fR (5).
460b9539 111.TP
0d350ff0 112.B get\-volume
0f55e905 113Display the current volume settings.
460b9539 114.TP
115.B length \fITRACK\fR
0f55e905 116Display the length of \fITRACK\fR in seconds.
460b9539 117.TP
118.B log
0f55e905 119Write event log messages to standard output, until the server is terminated.
460b9539 120See \fBdisorder_protocol\fR (5) for details of the output syntax.
121.TP
122.B move \fITRACK\fR \fIDELTA\fR
123Move
124.I TRACK
125by
126.I DELTA
c0c23a60
RK
127within the queue.
128Positive values move towards the head of the queue, negative
460b9539 129values towards the tail.
130.IP
131Note that if you specify a negative value then the
0d350ff0 132.B \-\-
460b9539 133option separate (before all commands) becomes mandatory, as otherwise the
134negative value is misinterpreted an an option.
135.TP
136.B part \fITRACK\fR \fICONTEXT\fI \fIPART\fR
137Get a track name part.
138.IP
c0c23a60
RK
139\fICONTEXT\fR should be either \fBsort\fR or \fBdisplay\fR.
140\fBpart\fR is the part of the name desired, typically \fBartist\fR,
141\fBalbum\fR or \fBtitle\fR.
460b9539 142.TP
143.B pause
c0c23a60
RK
144Pause the current track.
145(Note that not all players support pausing.)
460b9539 146.TP
147.B play \fITRACKS\fR...
148Add \fITRACKS\fR to the end of the queue.
149.TP
150.B playing
151Report the currently playing track.
152.TP
58865bb5
RK
153.B playlist-del \fIPLAYLIST\fR
154Deletes playlist \fIPLAYLIST\fR.
155.TP
156.B playlist-get \fIPLAYLIST\fR
157Gets the contents of playlist \fIPLAYLIST\fR.
158.TP
159.B playlist-set \fIPLAYLIST\fR [\fIPATH\fR]
160Set the contents of playlist \fIPLAYLIST\fR.
161If an absolute path name is specified then the track list is read from
162that filename.
163Otherwise the track list is read from standard input.
164In either case, the list is terminated either by end of file or by a line
165containing a single ".".
166.TP
167.B playlists
168Lists known playlists (in no particular order).
169.TP
460b9539 170.B prefs \fITRACK\fR
171Display all the preferences for \fITRACK\fR.
3d1452ab 172See \fBdisorder_preferences\fR (5).
460b9539 173.TP
174.B queue
c0c23a60
RK
175List the current queue.
176The first entry in the list is the next track to play.
460b9539 177.TP
0d350ff0 178.B random\-disable
460b9539 179Disable random play.
180.TP
0d350ff0 181.B random\-enable
460b9539 182Enable random play.
183.TP
184.B recent
c0c23a60
RK
185List recently played tracks.
186The first entry is the oldest track, the last entry is the most
187recently played one.
460b9539 188.TP
e86021e4
RK
189.B reconfigure
190Make the daemon reload its configuration file.
191.TP
460b9539 192.B remove \fITRACK\fR
193Remove a track from the queue.
194.TP
e86021e4 195.B rescan
c0c23a60
RK
196Rescan the filesystem for new tracks.
197There is an automatic daily rescan but if you've just added some tracks
198and want them to show up immediately, use this command.
e86021e4 199.TP
460b9539 200.B resolve \fITRACK\fR
201Resolve aliases for \fITRACK\fR and print out the real track name.
202.TP
203.B resume
204Resume the current track after a pause.
205.TP
0d350ff0 206.B rtp\-address
ca831831
RK
207Report the RTP brodcast address used by the server (if any).
208.TP
758aa6c3
RK
209.B schedule-del \fIEVENT\fR
210Delete a scheduled event.
211.TP
212.B schedule-list
213List scheduled events.
214Each line contains the ID, a timestamp, 'N' or 'J' for normal or junk priority,
215the user, the action and action-specific data.
216.TP
217.B schedule-play \fIWHEN PRIORITY TRACK\fI
d436bd52
RK
218Play \fITRACK\fR at time \fIWHEN\fR.
219Various time/date formats are supported depending on locale but the following
220three will always work:
221.RS
222.RS
223.TP
224.B "YYYY-MM-DD HH:MM:SS"
225.TP
226.B "HH:MM:SS"
227.TP
228.B "HH:MM"
229.RE
230.RE
758aa6c3
RK
231.IP
232\fIPRIORITY\fR should be \fBjunk\fR or \fBnormal\fR.
233This determines how the event is handled if it becomes due when the server is
234down.
235Junk events are just discarded in this case, while normal events will be
236executed when the server comes back up, even if this is much later.
237.TP
238.B schedule-set-global \fIWHEN PRIORITY NAME VALUE\fI
239Set global preference \fINAME\fR to \fIVALUE\fR at time \fIWHEN\fR.
240.TP
241.B schedule-unset-global \fIWHEN PRIORITY NAME\fI
242Unset global preference \fINAME\fR at time \fIWHEN\fR.
243.TP
460b9539 244.B scratch
245Scratch the currently playing track.
246.TP
0d350ff0 247.B scratch\-id \fIID\fR
460b9539 248Scratch the currently playing track, provided it has the given ID.
249.TP
250.B search \fITERMS\fR
c0c23a60
RK
251Search for tracks containing all of the listed terms.
252The terms are separated by spaces and form a single argument,
253so must be quoted, for example:
460b9539 254.IP
255.B "disorder search 'bowie china'"
256.IP
257You can limit the search to tracks with a particular tag, too, using the
c0c23a60
RK
258\fBtag:\fR modifier.
259For example:
460b9539 260.IP
ca831831 261.B "disorder search 'love tag:depressing'"
460b9539 262.TP
263.B set \fITRACK\fR \fIKEY\fR \fIVALUE\fR
264Set the preference \fIKEY\fR for \fITRACK\fR to \fIVALUE\fR.
3d1452ab 265See \fBdisorder_preferences\fR (5).
460b9539 266.TP
0d350ff0 267.B set\-global \fIKEY\fR \fIVALUE\fR
460b9539 268Set a global preference.
3d1452ab 269See \fBdisorder_preferences\fR (5).
460b9539 270.TP
0d350ff0 271.B set\-volume \fBLEFT\fR \fBRIGHT\fR
0f55e905
RK
272Set the volume.
273.TP
0d350ff0 274.B setup\-guest \fR[\fB\-\-no\-online\-registration\fR]
c0c23a60
RK
275Create the "guest" user for use by the web interface.
276This user will have no password and will only have the "read" and
277"register" rights, the latter allowing new users to automatically
278register themselves via the web interface.
0f55e905 279.IP
0d350ff0 280With the option \fB\-\-no-online\-registration\fR, the "register" right is
0f55e905 281suppressed and users must be manually created by an administrator.
f1592969 282.IP
283If online registration is desired then \fBmail_sender\fR must be set in the
c0c23a60
RK
284configuration file.
285See \fBdisorder_config\fR(5).
460b9539 286.TP
e86021e4
RK
287.B shutdown
288Shut down the daemon.
289.TP
460b9539 290.B stats
291List server statistics.
292.TP
293.B tags
294List known tags.
295.TP
296.B unset \fITRACK\fR \fIKEY\fR
297Unset the preference \fIKEY\fR for \fITRACK\fR.
3d1452ab 298See \fBdisorder_preferences\fR (5).
460b9539 299.TP
0d350ff0 300.B unset\-global \fIKEY\fR
460b9539 301Unset the global preference \fIKEY\fR.
3d1452ab 302See \fBdisorder_preferences\fR (5).
460b9539 303.TP
90ad6c6e 304.B userinfo \fIUSERNAME PROPERTY
dfb27dd6
RK
305Get some property of a user.
306.TP
a55c70c7
RK
307.B users
308List known users.
309.TP
460b9539 310.B version
311Report the daemon's version number.
312.PP
313For
314.B move
315and
316.BR remove ,
c0c23a60
RK
317tracks may be specified by name or by ID.
318If you use the name and a track appears twice in the queue it is
319undefined which is affected.
460b9539 320.SH NOTES
321.B disorder
c0c23a60
RK
322is locale-aware.
323If you do not set the locale correctly then it may not handle non-ASCII
324data properly.
460b9539 325.PP
e86021e4 326The client determines which user to attempt to authenticate as by examining the
c0c23a60
RK
327current UID.
328This can be overridden in a per-user configuration file, see
e86021e4
RK
329\fBdisorder_config\fR(5).
330.PP
331See \fBdisorder_protocol\fR(5) for the rights required to run each command.
332(For instance, \fBshutdown\fR requires the \fBadmin\fR right, which most users
333would not normally have.)
460b9539 334.PP
335This program is not intended to run in a setuid environment.
336.PP
337The regexp syntax used by the \fBfiles\fR and \fBdirs\fR commands use the
c0c23a60
RK
338syntax described in \fBpcrepattern\fR(3).
339Matching is case-independent.
340It is strongly recommended that you quote regexps, since they often
341contain characters treated specially by the shell.
342For example:
460b9539 343.PP
344.B "disorder dirs /Music ~'^(?!the [^t])t'"
345.SH TROUBLESHOOTING
346If you cannot play a track, or it does not appear in the database even after a
347rescan, check the following things:
348.TP
349.B .
350Are there any error messages in the system log? The server logs to
351\fBLOG_DAEMON\fR, which typically ends up in
352.I /var/log/daemon.log
353or
354.IR /var/log/messages ,
355though this depends on local configuration.
356.TP
357.B .
358Is the track in a known format? Have a look at
359.I pkgconfdir/config
c0c23a60
RK
360for the formats recognized by the local installation.
361The filename matching is case-sensitive.
460b9539 362.TP
363.B .
364Do permissions on the track allow the server to read it?
365.TP
366.B .
367Do the permissions on the containing directories allow the server to read and
368execute them?
369.PP
370The user the server runs as is determined by the \fBuser\fR directive in the
c0c23a60
RK
371configuration file.
372The README recommends using \fBjukebox\fR for this purpose but it could
373be different locally.
460b9539 374.SH ENVIRONMENT
375.TP
460b9539 376.B HOME
377The user's home directory.
378.TP
379.B LC_ALL\fR, \fBLANG\fR, etc
c0c23a60
RK
380Current locale.
381See \fBlocale\fR(7).
460b9539 382.SH FILES
383.TP
384.I pkgconfdir/config
c0c23a60
RK
385Global configuration file.
386See \fBdisorder_config\fR(5).
460b9539 387.TP
388.I ~/.disorder/passwd
389Per-user password file
390.TP
391.I pkgstatedir/socket
392Communication socket for \fBdisorder\fR(1).
393.SH "SEE ALSO"
394\fBdisorderd\fR(8), \fBdisorder_config\fR(5), \fBsyslog\fR(3), \fBtime\fR(2),
3d1452ab 395\fBpcrepattern\fR(3), \fBdisobedience\fR(1), \fBdisorder.cgi\fR(8),
9ce569e5 396\fBdisorder_preferences\fR(5)
460b9539 397.PP
398"\fBpydoc disorder\fR" for the Python API documentation.
399.\" Local Variables:
400.\" mode:nroff
401.\" fill-column:79
402.\" End: