1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2010 OpenWrt.org
6 PROG
=/usr
/sbin
/minidlnad
9 MINIDLNA_CONFIG_FILE
="/var/etc/minidlna.conf"
11 minidlna_cfg_addbool
() {
17 config_get_bool val
"$cfg" "$key" "$def"
18 [ "$val" -gt 0 ] && val
="yes" || val
="no"
22 minidlna_cfg_addstr
() {
28 config_get val
"$cfg" "$key" "$def"
29 [ -n "$val" ] && echo "$key=$val"
32 minidlna_cfg_add_media_dir
() {
37 minidlna_create_config
() {
42 config_get port
"$cfg" port
43 config_get interface
"$cfg" interface
45 { [ -z "$interface" ] ||
[ -t "$port" ]; } && return 1
48 echo "# this file is generated automatically, don't edit"
51 echo "network_interface=$interface"
53 minidlna_cfg_addstr
"$cfg" friendly_name
54 minidlna_cfg_addstr
"$cfg" user
55 minidlna_cfg_addstr
"$cfg" db_dir
56 minidlna_cfg_addstr
"$cfg" log_level
'error'
57 minidlna_cfg_addbool
"$cfg" inotify
'1'
58 minidlna_cfg_addbool
"$cfg" enable_tivo
'0'
59 minidlna_cfg_addbool
"$cfg" wide_links
'0'
60 minidlna_cfg_addbool
"$cfg" strict_dlna
'0'
61 minidlna_cfg_addstr
"$cfg" album_art_names
62 minidlna_cfg_addstr
"$cfg" presentation_url
63 minidlna_cfg_addstr
"$cfg" notify_interval
'900'
64 minidlna_cfg_addstr
"$cfg" serial
'12345678'
65 minidlna_cfg_addstr
"$cfg" model_number
'1'
66 minidlna_cfg_addstr
"$cfg" minissdpsocket
67 minidlna_cfg_addstr
"$cfg" root_container
'.'
68 minidlna_cfg_addstr
"$cfg" uuid
'019f9a56-ff60-44c0-9edc-eae88d09fa05'
69 config_list_foreach
"$cfg" "media_dir" minidlna_cfg_add_media_dir
72 } > "$MINIDLNA_CONFIG_FILE"
80 config_load
'minidlna'
81 config_get_bool enabled config
'enabled' '0'
83 [ "$enabled" -gt 0 ] ||
return 1
85 config_get val
"config" uuid
86 [ "$val" = '' ] && uci
set minidlna.config.uuid
="$(cat /proc/sys/kernel/random/uuid)" && uci commit minidlna
88 minidlna_create_config config ||
return 1
90 config_get db_dir config
'db_dir' '/var/run/minidlna'
91 config_get user config
'user' 'minidlna'
94 mkdir
-m 755 -p "$db_dir"
95 chown
-R "$user":"$user" "$db_dir"
99 procd_set_param
command "$PROG"
100 procd_append_param
command -S -f "$MINIDLNA_CONFIG_FILE"
101 procd_set_param stdout
1
102 procd_set_param stderr
1
103 procd_set_param respawn
108 procd_add_reload_trigger
"minidlna"