summaryrefslogtreecommitdiff
path: root/plugins/admin
diff options
context:
space:
mode:
authorroot <root@elwms02.(none)>2010-04-06 16:13:08 +0200
committerroot <root@elwms02.(none)>2010-04-06 16:13:08 +0200
commit0e7005fcc7483c01aa102fbea358c5ac65a48d62 (patch)
tree11517ce0d3d2977c6732b3aa583b0008083e0bd3 /plugins/admin
downloadx-vdr-0e7005fcc7483c01aa102fbea358c5ac65a48d62.tar.gz
x-vdr-0e7005fcc7483c01aa102fbea358c5ac65a48d62.tar.bz2
hello world
Diffstat (limited to 'plugins/admin')
-rw-r--r--plugins/admin/admin/admin.conf204
-rw-r--r--plugins/admin/admin/admin.sh15
-rw-r--r--plugins/admin/admin/setadm.sh26
-rw-r--r--plugins/admin/admin/setadmval.sh119
-rw-r--r--plugins/admin/admin/setvdr.sh109
-rw-r--r--plugins/admin/plugin.sh54
6 files changed, 527 insertions, 0 deletions
diff --git a/plugins/admin/admin/admin.conf b/plugins/admin/admin/admin.conf
new file mode 100644
index 0000000..8060555
--- /dev/null
+++ b/plugins/admin/admin/admin.conf
@@ -0,0 +1,204 @@
+# This file contains the tasks for the admin plugin
+# Syntax:
+# <script>:<name>:<value>:<type>:<length|default>:<choices>:<description>:
+:V D R
+/VAR:noad:0:B:0:Nein,Ja:Schnittmarken erkennen (NOAD):
+/VAR:vdradmin:0:B:0:Nein,Ja:VDRADMIN automatisch starten:
+/:WATCHDOG:0:I:60:0,999:Watchdog Timeout in Sekunden:
+/:XV_DISPLAY:0:I:0:0,9:XV Display:
+---- Verzeichnisse ---
+/DIR:VIDEODIR:/var/lib/vdrmedia/video:A:999:abcdefghijklmnopqrstuvwxyz0123456789-._/:Video:
+/DIR:MUSICDIR:/var/lib/vdrmedia/mp3:A:999:abcdefghijklmnopqrstuvwxyz0123456789-._/:Musik:
+/DIR:DVDISODIR:/var/lib/vdrmedia/isos:A:999:abcdefghijklmnopqrstuvwxyz0123456789-._/:DVD-Isos:
+/DIR:PICTUREDIR:/var/lib/vdrmedia/fotos:A:999:abcdefghijklmnopqrstuvwxyz0123456789-._/:Bilder und Fotos:
+/DIR:DIVXDIR:/var/lib/vdrmedia/divx:A:999:abcdefghijklmnopqrstuvwxyz0123456789-._/:DivX und Co:
+/DIR:DVDBURNER:/dev/dvd:A:999:abcdefghijklmnopqrstuvwxyz0123456789-._/:DVD Brenner:
+:Plugins
+/PLG:admin:0:B:0:Aus,An:admin:
+/PLG:adzap:0:B:0:Aus,An:adzap:
+/PLG:alcd:0:B:0:Aus,An:alcd:
+/PLG:analogradio:0:B:0:Aus,An:analogradio:
+/PLG:arghdirector:0:B:0:Aus,An:arghdirector:
+/PLG:atmo:0:B:0:Aus,An:atmo:
+/PLG:audiorecorder:0:B:0:Aus,An:audiorecorder:
+/PLG:autosort:0:B:0:Aus,An:autosort:
+/PLG:autotimeredit:0:B:0:Aus,An:autotimeredit:
+/PLG:avards:0:B:0:Aus,An:avards:
+/PLG:avolctl:0:B:0:Aus,An:avolctl:
+/PLG:beep:0:B:0:Aus,An:beep:
+/PLG:bitstreamout:0:B:0:Aus,An:bitstreamout:
+/PLG:burn:0:B:0:Aus,An:burn:
+/PLG:calc:0:B:0:Aus,An:calc:
+/PLG:cdda:0:B:0:Aus,An:cdda:
+/PLG:chanorg:0:B:0:Aus,An:chanorg:
+/PLG:cinebars:0:B:0:Aus,An:cinebars:
+/PLG:channelswitcher:0:B:0:Aus,An:channelswitcher:
+/PLG:clock:0:B:0:Aus,An:clock:
+/PLG:console:0:B:0:Aus,An:console:
+/PLG:control:0:B:0:Aus,An:control:
+/PLG:csf:0:B:0:Aus,An:csf:
+/PLG:cutalot:0:B:0:Aus,An:cutalot:
+/PLG:decruft:0:B:0:Aus,An:decruft:
+/PLG:default_plugins:0:B:0:Aus,An:default_plugins:
+/PLG:digicam:0:B:0:Aus,An:digicam:
+/PLG:director:0:B:0:Aus,An:director:
+/PLG:dummydevice:0:B:0:Aus,An:dummydevice:
+/PLG:dvd:0:B:0:Aus,An:dvd:
+/PLG:dvdconvert:0:B:0:Aus,An:dvdconvert:
+/PLG:dvdselect:0:B:0:Aus,An:dvdselect:
+/PLG:dvdswitch:0:B:0:Aus,An:dvdswitch:
+/PLG:dxr3:0:B:0:Aus,An:dxr3:
+/PLG:epgsearch:0:B:0:Aus,An:epgsearch:
+/PLG:epgsearchonly:0:B:0:Aus,An:epgsearchonly:
+/PLG:conflictcheckonly:0:B:0:Aus,An:conflictcheckonly:
+/PLG:quickepgsearch:0:B:0:Aus,An:quickepgsearch:
+/PLG:epgsync:0:B:0:Aus,An:epgsync:
+/PLG:extb:0:B:0:Aus,An:extb:
+/PLG:extrecmenu:0:B:0:Aus,An:extrecmenu:
+/PLG:femon:0:B:0:Aus,An:femon:
+/PLG:ffnetdev:0:B:0:Aus,An:ffnetdev:
+/PLG:filebrowser:0:B:0:Aus,An:filebrowser:
+/PLG:freecell:0:B:0:Aus,An:freecell:
+/PLG:fritzbox:0:B:0:Aus,An:fritzbox:
+/PLG:sport:0:B:0:Aus,An:sport:
+/PLG:games:0:B:0:Aus,An:games:
+/PLG:graphlcd:0:B:0:Aus,An:graphlcd:
+/PLG:graphtft:0:B:0:Aus,An:graphtft:
+/PLG:image:0:B:0:Aus,An:image:
+/PLG:ipod:0:B:0:Aus,An:ipod:
+/PLG:launcher:0:B:0:Aus,An:launcher:
+/PLG:lcdproc:0:B:0:Aus,An:lcdproc:
+/PLG:lcr:0:B:0:Aus,An:lcr:
+/PLG:live:0:B:0:Aus,An:live:
+/PLG:loadepg:0:B:0:Aus,An:loadepg:
+/PLG:mailbox:0:B:0:Aus,An:mailbox:
+/PLG:mediamvp:0:B:0:Aus,An:mediamvp:
+/PLG:menuorg:0:B:0:Aus,An:menuorg:
+/PLG:mlcd:0:B:0:Aus,An:mlcd:
+/PLG:mlist:0:B:0:Aus,An:mlist:
+/PLG:mousemate:0:B:0:Aus,An:mousemate:
+/PLG:mp3:0:B:0:Aus,An:mp3:
+/PLG:mplayer:0:B:0:Aus,An:mplayer:
+/PLG:muggle:0:B:0:Aus,An:muggle:
+/PLG:music:0:B:0:Aus,An:music:
+/PLG:coverviewer:0:B:0:Aus,An:coverviewer:
+/PLG:netconfig:0:B:0:Aus,An:netconfig:
+/PLG:newsticker:0:B:0:Aus,An:newsticker:
+/PLG:nordlichtsepg:0:B:0:Aus,An:nordlichtsepg:
+/PLG:osdout:0:B:0:Aus,An:osdout:
+/PLG:osdpip:0:B:0:Aus,An:osdpip:
+/PLG:osdserver:0:B:0:Aus,An:osdserver:
+/PLG:osdteletext:0:B:0:Aus,An:osdteletext:
+/PLG:picselshow:0:B:0:Aus,An:picselshow:
+/PLG:pilot:0:B:0:Aus,An:pilot:
+/PLG:pilotskin:0:B:0:Aus,An:pilotskin:
+/PLG:pim:0:B:0:Aus,An:pim:
+/PLG:pin:0:B:0:Aus,An:pin:
+/PLG:playlist:0:B:0:Aus,An:playlist:
+/PLG:podcatcher:0:B:0:Aus,An:podcatcher:
+/PLG:powermate:0:B:0:Aus,An:powermate:
+/PLG:prefermenu:0:B:0:Aus,An:prefermenu:
+/PLG:premiereepg:0:B:0:Aus,An:premiereepg:
+/PLG:pvrinput:0:B:0:Aus,An:pvrinput:
+/PLG:radio:0:B:0:Aus,An:radio:
+/PLG:recstatus:0:B:0:Aus,An:recstatus:
+/PLG:reelchannelscan:0:B:0:Aus,An:reelchannelscan:
+/PLG:remote:0:B:0:Aus,An:remote:
+/PLG:remoteosd:0:B:0:Aus,An:remoteosd:
+/PLG:remotetimers:0:B:0:Aus,An:remotetimers:
+/PLG:ripit:0:B:0:Aus,An:ripit:
+/PLG:rotor:0:B:0:Aus,An:rotor:
+/PLG:rssreader:0:B:0:Aus,An:rssreader:
+/PLG:screenshot:0:B:0:Aus,An:screenshot:
+/PLG:setup:0:B:0:Aus,An:setup:
+/PLG:skinelchi:0:B:0:Aus,An:skinelchi:
+/PLG:skinenigmang:0:B:0:Aus,An:skinenigmang:
+/PLG:skinreel:0:B:0:Aus,An:skinreel:
+/PLG:skinsoppalusikka:0:B:0:Aus,An:skinsoppalusikka:
+/PLG:sleeptimer:0:B:0:Aus,An:sleeptimer:
+/PLG:softdevice:0:B:0:Aus,An:softdevice:
+/PLG:solitaire:0:B:0:Aus,An:solitaire:
+/PLG:span:0:B:0:Aus,An:span:
+/PLG:streamdev_client:0:B:0:Aus,An:streamdev-client:
+/PLG:streamdev_server:0:B:0:Aus,An:streamdev-server:
+/PLG:streamplayer:0:B:0:Aus,An:streamplayer:
+/PLG:submenu:0:B:0:Aus,An:submenu:
+/PLG:subtitles:0:B:0:Aus,An:subtitles:
+/PLG:sudoku:0:B:0:Aus,An:sudoku:
+/PLG:svdrpext:0:B:0:Aus,An:svdrpext:
+/PLG:svdrpservice:0:B:0:Aus,An:svdrpservice:
+/PLG:sysinfo:0:B:0:Aus,An:sysinfo:
+/PLG:taste:0:B:0:Aus,An:taste:
+/PLG:text2skin:0:B:0:Aus,An:text2skin:
+/PLG:timeline:0:B:0:Aus,An:timeline:
+/PLG:touchtft:0:B:0:Aus,An:touchtft:
+/PLG:ttxtsubs:0:B:0:Aus,An:ttxtsubs:
+/PLG:tvonscreen:0:B:0:Aus,An:tvonscreen:
+/PLG:tvtv:0:B:0:Aus,An:tvtv:
+/PLG:undelete:0:B:0:Aus,An:undelete:
+/PLG:vcd:0:B:0:Aus,An:vcd:
+/PLG:vdrcd:0:B:0:Aus,An:vdrcd:
+/PLG:vdrrip:0:B:0:Aus,An:vdrrip:
+/PLG:vdrtvtime:0:B:0:Aus,An:vdrtvtime:
+/PLG:vompserver:0:B:0:Aus,An:vompserver:
+/PLG:wapd:0:B:0:Aus,An:wapd:
+/PLG:weatherng:0:B:0:Aus,An:weatherng
+/PLG:wirbelscan:0:B:0:Aus,An:wirbelscan:
+/PLG:xine:0:B:0:Aus,An:xine:
+/PLG:xineliboutput:0:B:0:Aus,An:xineliboutput:
+/PLG:xxvautotimer:0:B:0:Aus,An:xxvautotimer:
+/PLG:yaepg:0:B:0:Aus,An:yaepg:
+/PLG:zaphistory:0:B:0:Aus,An:zaphistory:
+:Plugin Optionen
+/ARG:audiorecorder_args:-r /var/lib/vdrmedia/mp3:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:audiorecorder:
+/ARG:avards_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:avards:
+/ARG:burn_args:-t /tmp -d /var/lib/vdrmedia/video -D /dev/dvd -i /var/lib/vdrmedia/isos:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:burn:
+/ARG:cdda_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:cdda:
+/ARG:console_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:console:
+/ARG:control_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:control:
+/ARG:dvd_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:dvd:
+/ARG:dvdswitch_args:-w /usr/lib/vdr/scripts/vdrwritedvd -r /usr/lib/vdr/scripts/vdrreaddvd --imagedir /var/lib/vdrmedia/isos:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:dvdswitch:
+/ARG:epgsearch_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:epgsearch:
+/ARG:ffnetdev_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:ffnetdev:
+/ARG:graphlcd_args:-c /etc/graphlcd.conf -d sed1330:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:graphlcd:
+/ARG:graphtft_args:-d vdr/1:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:graphtft:
+/ARG:image_args:-C /usr/lib/vdr/scripts/imageplugin.sh -m /usr/lib/vdr/scripts/vdrmount:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:image:
+/ARG:lcdproc_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:lcdproc:
+/ARG:live_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:live:
+/ARG:loadepg_args:-c /var/lib/vdr/plugins:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:loadepg:
+/ARG:playlist_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:playlist:
+/ARG:mediamvp_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:mediamvp:
+/ARG:menuorg_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:menuorg:
+/ARG:mp3_args:-m /usr/lib/vdr/scripts/vdrmount -B /var/lib/cddb:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:mp3:
+/ARG:mplayer_args:-m /usr/lib/vdr/scripts/vdrmount -M /usr/lib/vdr/scripts/mplayer.sh:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:mplayer:
+/ARG:muggle_args:-t/var/lib/vdrmedia/mp3:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:muggle:
+/ARG:music_args:-m /usr/lib/vdr/scripts/vdrmount -B /var/lib/cddb:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:music:
+/ARG:coverviewer_args: --config /var/lib/vdr/plugins/music:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:coverviewer:
+/ARG:osdteletext_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:osdteletext:
+/ARG:picselshow_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:picselshow:
+/ARG:podcatcher_args:-c /var/cache/podcatcher:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:podcatcher:
+/ARG:radio_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:radio:
+/ARG:remote_args:-i /dev/input/event2:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:remote:
+/ARG:rotor_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:rotor:
+/ARG:skinelchi_args:-l /var/lib/vdr/logos:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:skinelchi:
+/ARG:skinenigmang_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:skinenigmang:
+/ARG:skinsoppalusikka_args:-l /var/lib/vdr/logos:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:skinsoppalusikka:
+/ARG:sleeptimer_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:sleeptimer:
+/ARG:softdevice_args:-vo fb;:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:softdevice:
+/ARG:sport_args:-D /var/lib/vdr/plugins/sport -S /usr/lib/vdr/scripts/sport:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:sport:
+/ARG:streamdev_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:streamdev:
+/ARG:touchtft_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:touchtft:
+/ARG:tvonscreen_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:tvonscreen:
+/ARG:undelete_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:undelete:
+/ARG:vcd_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:vcd:
+/ARG:vdrcd_args:-m /usr/lib/vdr/scripts/vdrmount -c /media/cdfs -c /media/cdrom0:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:vdrcd:
+/ARG:vdrrip_args:-p /usr/bin/mplayer -e /usr/bin/mencoder:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:vdrrip:
+/ARG:vdrtvtime_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:vdrtvtime:
+/ARG:vompserver_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:vompserver:
+/ARG:weatherng_args:-S /usr/lib/vdr/scripts:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:weatherng:
+/ARG:xine_args:-r:A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:xine:
+/ARG:xineliboutput_args: :A:999:abcdefghijklmnopqrstuvwxyz0123456789-.;_ /:xineliboutput:
+:System
+/VAR:em8300:0:B:0:Nein,Ja:DXR3 Module laden:
+/VAR:graphlcd_base:0:B:0:Nein,Ja:GraphLCD Module laden:
+/VAR:LCDproc:0:B:0:Nein,Ja:LCD Module laden:
diff --git a/plugins/admin/admin/admin.sh b/plugins/admin/admin/admin.sh
new file mode 100644
index 0000000..bca13c0
--- /dev/null
+++ b/plugins/admin/admin/admin.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+source /etc/default/vdr
+
+if [ "$1" = "-init" ]; then
+ # write settings from /etc/default/vdr to admin.conf
+ at -f $VDRCONFDIR/plugins/admin/setadm.sh now
+elif [ "$1" = "-start" ]; then
+ echo "Starting admin plugin"
+elif [ "$1" = "-save" ]; then
+ # write settings from admin.conf to /etc/default/vdr
+ # this could only be by root
+ sudo $VDRSCRIPTDIR/vdr2root admin
+else
+ echo "Illegal Parameter <$1>"
+fi
diff --git a/plugins/admin/admin/setadm.sh b/plugins/admin/admin/setadm.sh
new file mode 100644
index 0000000..5d1c18a
--- /dev/null
+++ b/plugins/admin/admin/setadm.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+VDR_CONF="/etc/default/vdr"
+source $VDR_CONF
+ADMIN_CFG_FILE="$VDRCONFDIR/plugins/admin/admin.conf"
+
+# read VARS from $ADMIN_CFG_FILE
+ALL_VARS=$(grep "^/" $ADMIN_CFG_FILE | cut -f 2 -d ":")
+
+for VAR in $ALL_VARS; do
+ VAL=$(grep -m 1 "^$VAR=" $VDR_CONF | cut -f 2 -d '=')
+ VAL=$(eval echo $VAL)
+ case "$VAL" in
+ on)
+ $VDRCONFDIR/plugins/admin/setadmval.sh $VAR 1
+ ;;
+ off)
+ $VDRCONFDIR/plugins/admin/setadmval.sh $VAR 0
+ ;;
+ *)
+ $VDRCONFDIR/plugins/admin/setadmval.sh $VAR "$VAL"
+ ;;
+ esac
+done
+
+
+
diff --git a/plugins/admin/admin/setadmval.sh b/plugins/admin/admin/setadmval.sh
new file mode 100644
index 0000000..68a0f19
--- /dev/null
+++ b/plugins/admin/admin/setadmval.sh
@@ -0,0 +1,119 @@
+#!/bin/sh
+source /etc/default/vdr
+ADMIN_CFG_FILE="$VDRCONFDIR/plugins/admin/admin.conf"
+
+NAME=$1
+VAL=$2
+DO_RESET=$3
+
+NLINE=$(grep -m 1 ":$NAME:" $ADMIN_CFG_FILE)
+
+if [ "$NLINE" = "" ] ; then
+ logger -s "AdmVar: <$NAME> not found"
+ exit 1
+fi
+
+GROUP=$(echo $NLINE | cut -f 1 -d ":")
+TYPE=$(echo $NLINE | cut -f 4 -d ":")
+OLDVAL=$(echo $NLINE | cut -f 3 -d ":")
+DEFVAL=$(echo $NLINE | cut -f 5 -d ":")
+NEWVAL=""
+
+case "$TYPE" in
+ L)
+ ALL_VAL=$(echo $NLINE | cut -f 6 -d ":")
+ for IDX in $(seq 1 99) ; do
+ VALC=$(echo "$ALL_VAL" | cut -f $IDX -d ",")
+ if [ "$VALC" = "" ] ; then
+ break
+ fi
+ if [ "${VAL}" = "${VALC}" ] ; then
+ NEWVAL=$(($IDX - 1))
+ break
+ fi
+ done
+ if [ "$NEWVAL" = "" ] ; then
+ logger -s "Value <$VAL> is not valid for $NAME"
+ if [ $OLDVAL -ge 0 ] && [ $OLDVAL -lt $IDX ] ; then
+ NEWVAL=$(printf "%d" $OLDVAL)
+ else
+ logger -s "Old Value <$OLDVAL> is not valid for $NAME"
+ if [ $DEFVAL -ge 0 ] && [ $DEFVAL -lt $IDX ] ; then
+ NEWVAL=$(printf "%d" $DEFVAL)
+ else
+ logger -s "Def Value <$DEFVAL> is not valid for $NAME - setting to 0"
+ NEWVAL=0
+ fi
+ fi
+ VAL=$(echo "$ALL_VAL" | cut -f $(($NEWVAL + 1)) -d ",")
+ fi
+ ;;
+ A)
+ NEWVAL=$(echo "$VAL" | sed -e 's/:/;/g')
+# NEWVAL=$VAL
+ ;;
+ B)
+ if [ "$VAL" = "0" ] || [ "$VAL" = "1" ] ; then
+ NEWVAL=$VAL
+ else
+ logger -s "Value <$VAL> is not valid for $NAME"
+ if [ "$OLDVAL" = "0" ] || [ "$OLDVAL" = "1" ] ; then
+ NEWVAL=$OLDVAL
+ else
+ logger -s "Old value <$VAL> is not valid for $NAME"
+ if [ "$DEFVAL" = "0" ] || [ "$DEFVAL" = "1" ] ; then
+ NEWVAL=$VAL
+ else
+ logger -s "Def value <$VAL> is not valid for $NAME - setting to 0"
+ NEWVAL=0
+ fi
+ fi
+ fi
+ VAL=$NEWVAL
+ ;;
+ I)
+ MINVAL=$(echo $NLINE | cut -f 6 -d ":" |cut -f 1 -d ",")
+ MAXVAL=$(echo $NLINE | cut -f 6 -d ":" |cut -f 2 -d ",")
+ if [ $VAL -ge $MINVAL ] && [ $VAL -le $MAXVAL ] ; then
+ NEWVAL=$(printf "%d" $VAL)
+ else
+ logger -s "Value <$VAL> is not valid for $NAME"
+ if [ $OLDVAL -ge $MINVAL ] && [ $OLDVAL -le $MAXVAL ] ; then
+ NEWVAL=$(printf "%d" $OLDVAL)
+ else
+ logger -s "Old Value <$OLDVAL> is not valid for $NAME"
+ if [ $DEFVAL -ge $MINVAL ] && [ $DEFVAL -le $MAXVAL ] ; then
+ NEWVAL=$(printf "%d" $DEFVAL)
+ else
+ logger -s "Def Value <$DEFVAL> is not valid for $NAME - setting to $MINVAL"
+ NEWVAL=$(printf "%d" $MINVAL)
+ fi
+ fi
+ fi
+ VAL=$NEWVAL
+ ;;
+ *)
+ logger -s "Illegal line in $ADMIN_CFG_FILE :"
+ logger -s "$NLINE"
+ exit 1
+ ;;
+esac
+
+if [ "$NEWVAL" = "" ] ; then
+# logger -s "Value <$VAL> is not valid for $NAME"
+# exit 1
+ NEWVAL=" "
+fi
+
+if [ "$NEWVAL" != "$OLDVAL" ] ; then
+ logger -s "Changing $NAME to <$NEWVAL> from <$OLDVAL> in $ADMIN_CFG_FILE"
+ if [ "$GROUP" = "/DIR" ] || [ "$GROUP" = "/ARG" ]; then
+ sed -i $ADMIN_CFG_FILE -e "s?\:$NAME\:$OLDVAL\:?\:$NAME\:$NEWVAL\:?"
+ else
+ sed -i $ADMIN_CFG_FILE -e "s/\:$NAME\:$OLDVAL\:/\:$NAME\:$NEWVAL\:/"
+ fi
+#else
+# echo "${NAME} is already set to ${NEWVAL} in $ADMIN_CFG_FILE"
+fi
+
+
diff --git a/plugins/admin/admin/setvdr.sh b/plugins/admin/admin/setvdr.sh
new file mode 100644
index 0000000..84a61ed
--- /dev/null
+++ b/plugins/admin/admin/setvdr.sh
@@ -0,0 +1,109 @@
+#!/bin/sh
+VDR_CONF="/etc/default/vdr"
+source $VDR_CONF
+ADMIN_CFG_FILE="$VDRCONFDIR/plugins/admin/admin.conf"
+
+ORIG_IFS=$IFS # save IFS
+
+cat $ADMIN_CFG_FILE | while read new_line; do
+ IFS=":" # set IFS
+ ARRAY=($new_line)
+ GROUP=${ARRAY[0]}
+ NAME=${ARRAY[1]}
+ VAL=${ARRAY[2]}
+ if [ "$(echo $GROUP | grep '^/')" ]; then
+ NEW_VAL=$(echo $VAL | sed -e 's/;/:/g' -e 's/^ //g' -e 's/ $//g')
+ VAR=$(grep -m 1 "^$NAME=" $VDR_CONF)
+ OLD_VAL=$(echo $VAR | cut -f 2 -d '=')
+ OLD_VAL=$(echo $OLD_VAL)
+ if [ "$VAR" ] && [ "$OLD_VAL" != "$NEW_VAL" ]; then
+ case $GROUP in
+ /ARG)
+ sed -i $VDR_CONF -e "s?$VAR?$NAME=\"$NEW_VAL\"?g"
+ ;;
+ /DIR)
+ if [ ! -d "$NEW_VAL" ] && [ "$NAME" != "DVDBURNER" ]; then
+ mkdir -p "$NEW_VAL"
+ chown -R $VDRUSER.$VDRGROUP "$NEW_VAL"
+ fi
+ sed -i $VDR_CONF -e "s?$VAR?$NAME=\"$NEW_VAL\"?g"
+
+ if [ "$NAME" = "DIVXDIR" ]; then
+ PATH_EXISTS=$(grep "^$OLD_VAL;" "$VDRCONFDIR/plugins/mplayersources.conf")
+ if [ "$PATH_EXISTS" ]; then
+ sed -i "$VDRCONFDIR/plugins/mplayersources.conf" -e "s?$OLD_VAL?$NEW_VAL?g"
+ else
+ echo "$NEW_VAL;More Movies;0;*.avi" >> "$VDRCONFDIR/plugins/mplayersources.conf"
+ fi
+ fi
+
+ if [ "$NAME" = "ISODIR" ]; then
+ PATH_EXISTS=$(grep "^$OLD_VAL;" "$VDRCONFDIR/plugins/mplayersources.conf")
+ if [ "$PATH_EXISTS" ]; then
+ sed -i "$VDRCONFDIR/plugins/mplayersources.conf" -e "s?$OLD_VAL?$NEW_VAL?g"
+ else
+ echo "$NEW_VAL;More DVDs;0;*.iso" >> "$VDRCONFDIR/plugins/mplayersources.conf"
+ fi
+ fi
+
+ if [ "$NAME" = "MUSICDIR" ]; then
+ PATH_EXISTS=$(grep "^$OLD_VAL;" "$VDRCONFDIR/plugins/mp3ng/mp3sources.conf")
+ if [ "$PATH_EXISTS" ]; then
+ sed -i "$VDRCONFDIR/plugins/mp3ng/mp3sources.conf" -e "s?$OLD_VAL?$NEW_VAL?g"
+ else
+ echo "$NEW_VAL;More Music;0;*.mp3/*.ogg/*.wav" >> "$VDRCONFDIR/plugins/mp3ng/mp3sources.conf"
+ fi
+ PATH_EXISTS=$(grep "^$OLD_VAL;" "$VDRCONFDIR/plugins/mp3sources.conf")
+ if [ "$PATH_EXISTS" ]; then
+ sed -i "$VDRCONFDIR/plugins/mp3sources.conf" -e "s?$OLD_VAL?$NEW_VAL?g"
+ else
+ echo "$NEW_VAL;More Music;0;*.mp3/*.ogg/*.wav" >> "$VDRCONFDIR/plugins/mp3sources.conf"
+ fi
+ fi
+
+ if [ "$NAME" = "PICTUREDIR" ]; then
+ PATH_EXISTS=$(grep "^$OLD_VAL;" "$VDRCONFDIR/plugins/imagesources.conf")
+ if [ "$PATH_EXISTS" ]; then
+ sed -i "$VDRCONFDIR/plugins/imagesources.conf" -e "s?$OLD_VAL?$NEW_VAL?g"
+ else
+ echo "$NEW_VAL;More Pictures;0;*.jpg *.JPG" >> "$VDRCONFDIR/plugins/imagesources.conf"
+ fi
+ fi
+
+ if [ "$NAME" = "VIDEODIR" ]; then
+ PATH_EXISTS=$(grep "^$OLD_VAL;" "$VDRCONFDIR/plugins/mplayersources.conf")
+ if [ "$PATH_EXISTS" ]; then
+ sed -i "$VDRCONFDIR/plugins/mplayersources.conf" -e "s?$OLD_VAL?$NEW_VAL?g"
+ else
+ echo "$NEW_VAL;More Recordings;0;*0*.vdr" >> "$VDRCONFDIR/plugins/mplayersources.conf"
+ fi
+ fi
+ ;;
+ /PLG)
+ PLUGIN_NAME="$NAME"
+ [ "$NAME" = "streamdev_client" ] && PLUGIN_NAME="streamdev-client"
+ [ "$NAME" = "streamdev_server" ] && PLUGIN_NAME="streamdev-server"
+ if [ "$NEW_VAL" = "1" ] && [ -f $VDRLIBDIR/libvdr-$PLUGIN_NAME.so* ]; then
+ sed -i $VDR_CONF -e "s/$VAR/$NAME=\"on\"/g"
+ else
+ sed -i $VDR_CONF -e "s/$VAR/$NAME=\"off\"/g"
+ fi
+ ;;
+ /VAR)
+ if [ "$NEW_VAL" = "1" ]; then
+ sed -i $VDR_CONF -e "s/$VAR/$NAME=\"on\"/g"
+ else
+ sed -i $VDR_CONF -e "s/$VAR/$NAME=\"off\"/g"
+ fi
+ ;;
+ /*)
+ sed -i $VDR_CONF -e "s/$VAR/$NAME=\"$NEW_VAL\"/g"
+ ;;
+ esac
+ fi
+ fi
+done
+
+IFS=$ORIG_IFS # reset IFS
+
+exit 0
diff --git a/plugins/admin/plugin.sh b/plugins/admin/plugin.sh
new file mode 100644
index 0000000..af0204b
--- /dev/null
+++ b/plugins/admin/plugin.sh
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+# x-vdr (Installations-Skript fuer einen VDR mit Debian als Basis)
+# von Marc Wernecke - www.zulu-entertainment.de
+# 29.04.2007
+#
+# vdr-admin
+
+# defaults
+source ./../../x-vdr.conf
+source ./../../setup.conf
+source ./../../functions
+WEB="http://www.htpc-forum.de/download/vdr-admin-0.6.2.tgz"
+VERSION="admin-0.6.2"
+LINK="admin"
+
+VAR=`basename $WEB`
+DIR=`pwd`
+
+# plugin entfernen
+function clean_plugin() {
+ cd $SOURCEDIR/VDR/PLUGINS/src
+ rm -rf $LINK*
+ rm -f $VDRLIBDIR/libvdr-$LINK*
+ rm -rf $VDRCONFDIR/plugins/admin
+ log "cleaning $LINK"
+}
+
+# plugin installieren
+function install_plugin() {
+ download_plugin
+ extract_plugin
+ cd $SOURCEDIR/VDR/PLUGINS/src
+ rm -f $LINK
+ ln -vfs $VERSION $LINK
+ patch_plugin
+
+ ## plugin specials - start ##
+ cp -rf $DIR/admin $VDRCONFDIR/plugins
+ chown -R $VDRUSER:$VDRGROUP $VDRCONFDIR/plugins/admin
+ chmod 0744 $VDRCONFDIR/plugins/admin/*.sh
+ ## plugin specials - ende ##
+}
+
+# plugin commands
+if [ $# \> 0 ]; then
+ cmd=$1
+ cmd_plugin
+else
+ install_plugin
+ log "install-plugin fuer $VERSION ist fertig"
+fi
+
+exit 0