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