/
forked-daapd
executable file
·118 lines (110 loc) · 4.98 KB
/
forked-daapd
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
#!/bin/sh
#
# This file is part of OpenMediaVault.
#
# @license http://www.gnu.org/licenses/gpl.html GPL Version 3
# @author Volker Theile <volker.theile@openmediavault.org>
# @copyright Copyright (c) 2009-2018 Volker Theile
#
# OpenMediaVault is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# any later version.
#
# OpenMediaVault 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 OpenMediaVault. If not, see <http://www.gnu.org/licenses/>.
set -e
. /etc/default/openmediavault
. /usr/share/openmediavault/scripts/helper-functions
OMV_FORKEDDAAPD_CONFIG=${OMV_FORKEDDAAPD_CONFIG:-"/etc/forked-daapd.conf"}
OMV_FORKEDDAAPD_DEFAULT=${OMV_FORKEDDAAPD_DEFAULT:-"/etc/default/forked-daapd"}
OMV_FORKEDDAAPD_DAEMONOPTS=${OMV_FORKEDDAAPD_DAEMONOPTS:-"-m"}
OMV_FORKEDDAAPD_GENERAL_UID=${OMV_FORKEDDAAPD_GENERAL_UID:-"daapd"}
OMV_FORKEDDAAPD_GENERAL_LOGFILE=${OMV_FORKEDDAAPD_GENERAL_LOGFILE:-"/var/log/forked-daapd.log"}
OMV_FORKEDDAAPD_GENERAL_LOGLEVEL=${OMV_FORKEDDAAPD_GENERAL_LOGLEVEL:-"log"}
OMV_FORKEDDAAPD_GENERAL_DBPATH=${OMV_FORKEDDAAPD_GENERAL_DBPATH:-"/var/cache/forked-daapd/songs3.db"}
OMV_FORKEDDAAPD_LIBRARY_FILESCANDISABLE=${OMV_FORKEDDAAPD_LIBRARY_FILESCANDISABLE:-"false"}
OMV_FORKEDDAAPD_LIBRARY_ITUNESOVERRIDES=${OMV_FORKEDDAAPD_LIBRARY_ITUNESOVERRIDES:-"false"}
OMV_FORKEDDAAPD_AUDIO_NICKNAME=${OMV_FORKEDDAAPD_AUDIO_NICKNAME:-"Computer"}
mkconf() {
local ipv6
# Create '/etc/default/forked-daapd' file
cat <<EOF > ${OMV_FORKEDDAAPD_DEFAULT}
DAEMON_OPTS="${OMV_FORKEDDAAPD_DAEMONOPTS}"
EOF
ipv6="no"
if ! omv_is_ipv6_enabled; then
ipv6="yes"
fi
# Create '/etc/forked-daapd.conf' file
xmlstarlet sel -t -m "//services/daap" \
-o "general {" -n \
-o " # Username" -n \
-o " uid = \"${OMV_FORKEDDAAPD_GENERAL_UID}\"" -n \
-o " logfile = \"${OMV_FORKEDDAAPD_GENERAL_LOGFILE}\"" -n \
-o " # Available levels: fatal, log, warning, info, debug, spam" -n \
-o " loglevel = \"${OMV_FORKEDDAAPD_GENERAL_LOGLEVEL}\"" -n \
-o " # Database location" -n \
-o " db_path = \"${OMV_FORKEDDAAPD_GENERAL_DBPATH}\"" -n \
-o " # Admin password for the non-existent web interface" -n \
-v "concat(' admin_password = \"',adminpassword,'\"')" -n \
-o " # Enable/disable IPv6" -n \
-o " ipv6 = ${ipv6}" -n \
-o "}" -n \
-n \
-o "# Library configuration" -n \
-o "library {" -n \
-o " # Name of the library as displayed by the clients" -n \
-o " # %h: hostname, %v: version" -n \
-v "concat(' name = \"',libraryname,'\"')" -n \
-o " # TCP port to listen on. Default port is 3689 (daap)" -n \
-v "concat(' port = ',port)" -n \
-i "passwordrequired[. = '1']" \
-o " # Password for the library. Optional." -n \
-v "concat(' password = \"',password,'\"')" -n \
-b \
-o " # Directories to index" -n \
-o " directories = \"" ${OMV_XMLSTARLET_GET_SHAREDFOLDER_PATH} -o "\"" -n \
-o " # Disable startup file scanning" -n \
-o " # When forked-daapd starts it will do an initial file scan of your" -n \
-o " # library (and then watch it for changes). If you are sure your library" -n \
-o " # never changes while forked-daapd is not running, you can disable the" -n \
-o " # initial file scan and save some system ressources. Disabling this scan" -n \
-o " # may lead to forked-daapd's database coming out of sync with the" -n \
-o " # library. If that happens read the instructions in the README on how" -n \
-o " # to trigger a full rescan." -n \
-o " filescan_disable = ${OMV_FORKEDDAAPD_LIBRARY_FILESCANDISABLE}" -n \
-o " # Should iTunes metadata override ours?" -n \
-o " itunes_overrides = ${OMV_FORKEDDAAPD_LIBRARY_ITUNESOVERRIDES}" -n \
-o " # Formats: mp4a, mp4v, mpeg, alac, flac, mpc, ogg, wma, wmal, wmav, aif$" -n \
-o " # Formats that should never be transcoded" -n \
-o "# no_transcode = { \"alac\", \"mp4a\" }" -n \
-o " # Formats that should always be transcoded" -n \
-o "# force_transcode = { \"ogg\", \"flac\" }" -n \
-o "}" -n \
-n \
-o "# Local audio output" -n \
-o "#audio {" -n \
-o " # AirTunes name - used in the speaker list in Remote" -n \
-o "# nickname = \"${OMV_FORKEDDAAPD_AUDIO_NICKNAME}\"" -n \
-o " # Audio device name for local audio output" -n \
-o "# card = \"default\"" -n \
-o "#}" -n \
-n \
-o "# Airport Express device" -n \
-o "#apex \"ApEx\" {" -n \
-o " # AirTunes password" -n \
-o "# password = \"s1kr3t\"" -n \
-o "#}" \
${OMV_CONFIG_FILE} | xmlstarlet unesc > ${OMV_FORKEDDAAPD_CONFIG}
}
case "$1" in
mkconf|*)
mkconf
;;
esac