1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2010 OpenWrt.org
7 SERVICE_PID_FILE
=/var
/run
/minidlna
/minidlna.pid
9 MINIDLNA_CONFIG_FILE
="/var/etc/minidlna.conf"
11 minidlna_cfg_append
() {
12 echo "$1" >> "$MINIDLNA_CONFIG_FILE"
15 minidlna_cfg_addbool
() {
21 config_get_bool val
"$cfg" "$key" "$def"
22 [ "$val" -gt 0 ] && val
="yes" || val
="no"
23 minidlna_cfg_append
"$key=$val"
26 minidlna_cfg_addstr
() {
32 config_get val
"$cfg" "$key" "$def"
33 [ -n "$val" ] && minidlna_cfg_append
"$key=$val"
36 minidlna_cfg_add_media_dir
() {
38 minidlna_cfg_append
"media_dir=$val"
41 minidlna_create_config
() {
46 config_get port
"$cfg" port
47 config_get interface
"$cfg" interface
49 [ -z "$interface" -o -t "$port" ] && return 1
52 echo "# this file is generated automatically, don't edit" > "$MINIDLNA_CONFIG_FILE"
54 minidlna_cfg_append
"port=$port"
55 minidlna_cfg_append
"network_interface=$interface"
57 minidlna_cfg_addstr
"$cfg" friendly_name
58 minidlna_cfg_addstr
"$cfg" user
59 minidlna_cfg_addstr
"$cfg" db_dir
60 minidlna_cfg_addstr
"$cfg" log_dir
61 minidlna_cfg_addstr
"$cfg" log_level
'error'
62 minidlna_cfg_addbool
"$cfg" inotify
'1'
63 minidlna_cfg_addbool
"$cfg" enable_tivo
'0'
64 minidlna_cfg_addbool
"$cfg" wide_links
'0'
65 minidlna_cfg_addbool
"$cfg" strict_dlna
'0'
66 minidlna_cfg_addstr
"$cfg" album_art_names
67 minidlna_cfg_addstr
"$cfg" presentation_url
68 minidlna_cfg_addstr
"$cfg" notify_interval
'900'
69 minidlna_cfg_addstr
"$cfg" serial
'12345678'
70 minidlna_cfg_addstr
"$cfg" model_number
'1'
71 minidlna_cfg_addstr
"$cfg" minissdpsocket
72 minidlna_cfg_addstr
"$cfg" root_container
'.'
73 minidlna_cfg_addstr
"$cfg" uuid
'019f9a56-ff60-44c0-9edc-eae88d09fa05'
74 config_list_foreach
"$cfg" "media_dir" minidlna_cfg_add_media_dir
86 config_load
'minidlna'
87 config_get_bool enabled config
'enabled' '0'
89 [ "$enabled" -gt 0 ] ||
return 1
91 config_get val
"config" uuid
92 [ "$val" = '' ] && uci
set minidlna.config.uuid
=$
(cat /proc
/sys
/kernel
/random
/uuid
) && uci commit
94 minidlna_create_config config ||
return 1
96 config_get db_dir config
'db_dir' '/var/run/minidlna'
97 config_get log_dir config
'log_dir' '/var/log/minidlna'
98 config_get user config
'user' 'root'
100 mkdir
-m 0755 -p "$db_dir" "$log_dir"
101 chown
-R "$user" "$db_dir" "$log_dir"
103 service_start
/usr
/bin
/minidlna
-f "$MINIDLNA_CONFIG_FILE"
107 service_stop
/usr
/bin
/minidlna