lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

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 }