581c8d1f5a421b717e2c755c6616623117804e2b
[openwrt/svn-archive/packages.git] / multimedia / minidlna / files / minidlna.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2010 OpenWrt.org
3
4 START=50
5
6 SERVICE_USE_PID=1
7
8 MINIDLNA_CONFIG_FILE="/tmp/minidlna.conf"
9
10 minidlna_cfg_append() {
11 echo "$1" >> "$MINIDLNA_CONFIG_FILE"
12 }
13
14 minidlna_cfg_addbool() {
15 local cfg="$1"
16 local key="$2"
17 local def="$3"
18 local val
19
20 config_get_bool val "$cfg" "$key" "$def"
21 [ "$val" -gt 0 ] && val="yes" || val="no"
22 minidlna_cfg_append "$key=$val"
23 }
24
25 minidlna_cfg_addstr() {
26 local cfg="$1"
27 local key="$2"
28 local def="$3"
29 local val
30
31 config_get val "$cfg" "$key" "$def"
32 [ -n "$val" ] && minidlna_cfg_append "$key=$val"
33 }
34
35 minidlna_cfg_add_media_dir() {
36 local val=$1
37
38 minidlna_cfg_append "media_dir=$val"
39 }
40
41 minidlna_create_config() {
42 local cfg=$1
43 local port
44 local interface
45
46 config_get port $cfg port
47 config_get interface $cfg interface
48
49 [ -z "$interface" -o -t "$port" ] && return 1
50
51 echo "# this file is generated automatically, don't edit" > "$MINIDLNA_CONFIG_FILE"
52
53 minidlna_cfg_append "port=$port"
54 minidlna_cfg_append "network_interface=$interface"
55
56 minidlna_cfg_addstr $cfg friendly_name
57 minidlna_cfg_addstr $cfg db_dir
58 minidlna_cfg_addstr $cfg log_dir
59 minidlna_cfg_addbool $cfg inotify '1'
60 minidlna_cfg_addbool $cfg enable_tivo '0'
61 minidlna_cfg_addbool $cfg strict_dlna '0'
62 minidlna_cfg_addstr $cfg album_art_names
63 minidlna_cfg_addstr $cfg presentation_url
64 minidlna_cfg_addstr $cfg notify_interval '900'
65 minidlna_cfg_addstr $cfg serial '12345678'
66 minidlna_cfg_addstr $cfg model_number '1'
67 minidlna_cfg_addstr $cfg minissdpsocket
68 minidlna_cfg_addstr $cfg root_container '.'
69 config_list_foreach "$cfg" "media_dir" minidlna_cfg_add_media_dir
70
71 return 0
72 }
73
74 start() {
75 local enabled
76 local db_dir
77 local log_dir
78
79 config_load 'minidlna'
80 config_get_bool enabled config 'enabled' '0'
81
82 [ "$enabled" -gt 0 ] || return 1
83
84 minidlna_create_config config || return 1
85
86 config_get db_dir config 'db_dir' '/var/run/minidlna'
87 config_get log_dir config 'log_dir' '/var/log'
88
89 mkdir -m 0755 -p $db_dir
90 mkdir -m 0755 -p $log_dir
91 service_start /usr/bin/minidlna -f "$MINIDLNA_CONFIG_FILE"
92 }
93
94 stop() {
95 service_stop /usr/bin/minidlna
96 }