summaryrefslogtreecommitdiffstats
path: root/sound/mpd/files/mpd.init
blob: 93bffd1e5fa54a165fb40c79dcb3a3e27dd0bccd (plain)
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
#!/bin/sh /etc/rc.common
# Copyright (C) 2007-2014 OpenWrt.org

START=93

USE_PROCD=1

PROG=/usr/bin/mpd
CONFIGFILE=/etc/mpd.conf
NICEPRIO=-10

USER="mpd"
GROUP="mpd"

#TODO: Add uci config - nice, config

start_service() {
	local pld lport

	#create mpd directories from config
	pld=$(grep ^playlist_directory "$CONFIGFILE" | head -1 | cut -d '"' -f 2 | sed "s/~/\/root/g")
	[ -z "$pld" ] && pld="/tmp/mpd"
	if [ ! -d "$pld" ]; then
		mkdir -m 0755 -p "$pld"
		chown $USER:$GROUP $pld
	fi

	lport=$(grep ^port "$CONFIGFILE" | cut -d "\"" -f 2)
	[ -z "$lport" ] && lport=6600

	procd_open_instance
	procd_add_mdns "mpd" "tcp" "$lport"
	procd_set_param command "$PROG" --no-daemon "$CONFIGFILE"
	procd_set_param user "$USER"
	procd_set_param group "$GROUP"
	procd_set_param stderr 1
	# Give MPD some real-time priority
	procd_set_param nice "$NICEPRIO"
	procd_close_instance
}

reload_service() {
	procd_send_signal "$PROG"
}