#!/bin/sh # # Dieses Script wird vom VDR addons-Plugin aufgerufen um # Informationen �ber Addons zu erhalten oder Addons zu verwalten. # # Argument 1: auszuf�hrende Aktion # Argument X: abh�ngig von der Aktion # # Return: 0 wenn alles ok ist # . /etc/rc.config filelist="/tmp/addons.list" action="$1" #mkdir -p $pathInaktiv if [ "$3" != "-n" ]; then rm -f $filelist fi case "$action" in install-ones) # Addon bis zum nächsten Reboot Installieren filename="$2" ( apm install $filename --start 2>&1 | getpercent.apm | while read percent; do if [ 0$last -le 0$percent ]; then name=`sed "s/.*_\(.*\)-.*_.*\|.*/\1/" /var/spool/apm.wget` fi last=$percent svdrpsend.sh "PLUG addons MESG install $name - $percent %"; done name=`echo "$filename" | sed "s/.*_\(.*\)-.*_.*|.*/\1/"` svdrpsend.sh "PLUG addons MESG installation of $name completed" ) & state=$? ;; install) # Addon Installieren filename="$2" ( apm install $filename --start --activate 2>&1 | getpercent.apm | while read percent; do if [ 0$last -le 0$percent ]; then name=`sed "s/.*_\(.*\)-.*_.*\|.*/\1/" /var/spool/apm.wget` fi last=$percent svdrpsend.sh "PLUG addons MESG install $name - $percent %"; done name=`echo "$filename" | sed "s/.*_\(.*\)-.*_.*|.*/\1/"` svdrpsend.sh "PLUG addons MESG installation of $name completed" ) & state=$? ;; uninstall-ones) # Addon entladen filename="$2" if [ "`apm basename $filename`" = "vdr" ]; then # vdr darf nicht deinstalliert werden echo -e "$filename" >> $filelist state=1 else apm erase "$filename" --stop state=$? fi ;; uninstall) # Addon entladen und deinstallieren damit es beim nchsten MLD-Start nicht mitgeladen wird filename="$2" if [ "`apm basename $filename`" = "vdr" ]; then # vdr darf nicht deinstalliert werden echo -e "$filename" >> $filelist state=1 else apm deactivate "$filename" -n >> $filelist apm erase "$filename" --stop state=$? fi ;; delete) # Addon loeschen filename="$2" if [ "`apm basename $filename`" = "vdr" ]; then # vdr darf nicht gelöscht werden echo -e "$filename" >> $filelist state=1 else apm delete "$filename" -q state=$? fi ;; update) # Addon Updaten filename="$2" ( apm update $filename 2>&1 | getpercent.apm | while read percent; do if [ 0$last -le 0$percent ]; then name=`sed "s/.*_\(.*\)-.*_.*\|.*/\1/" /var/spool/apm.wget` fi last=$percent svdrpsend.sh "PLUG addons MESG update $name - $percent %"; done name=`echo "$filename" | sed "s/.*_\(.*\)-.*_.*|.*/\1/"` svdrpsend.sh "PLUG addons MESG update of $name completed" ) & state=$? ;; update-all) # Alle Addons Updaten ( if [ -n "$BACKUP_ON_APM_UPDATEALL" ]; then svdrpsend.sh "PLUG addons MESG create backup" fi apm update-all 2>&1 | getpercent.apm | while read percent; do if [ 0$last -le 0$percent -a -e "/var/spool/apm.wget" ]; then name=`sed "s/.*_\(.*\)-.*_.*\|.*/\1/" /var/spool/apm.wget` fi last=$percent svdrpsend.sh "PLUG addons MESG update $name - $percent %" done svdrpsend.sh "PLUG addons MESG update of all addons completed" ) & state=$? ;; restart) # VDR neu starten rcvdr quickrestart state=$? ;; list-available) # noch nicht nachgeladende Addons zurueckgeben apm list-available -n >> $filelist state=$? ;; list) # geladene Addons zurück geben for addon in `apm list`; do echo -e "$addon\t$addon" >> $filelist done state=$? ;; list-systems) # gefundene System-Addons zurueckgeben installed="`apm list; apm list-all --group vdrapi`" apm list-all | while read addon; do name=`echo "$addon" | cut -d " " -f 1` version=`echo "$addon" | cut -d " " -f 2` if [ -z "`echo "$installed" | grep "^$name\( \|$\)"`" ]; then echo -e "${name}_$version\t$name" >> $filelist fi done state=$? ;; list-plugins) # gefundene Plugin-Addons zurueckgeben installed=`apm list` apm list-all --group vdrapi | while read addon; do name=`echo "$addon" | cut -d " " -f 1` version=`echo "$addon" | cut -d " " -f 2` if [ -z "`echo "$installed" | grep "^$name\( \|$\)"`" ]; then echo -e "${name}_$version\t$name" >> $filelist fi done state=$? ;; list-updates) # gefundene Updates zurueckgeben apm list-updates | while read addon; do name=`echo "$addon" | cut -d " " -f 1` version=`echo "$addon" | cut -d " " -f 2` echo -e "${name}_$version\t$name" >> $filelist done state=$? ;; readme) filename="$2" name=`echo "$filename" | sed "s/.*_\(.*\)-[0-9].*\.tgz/\1/"` apm info $name -q readme="`find /usr/share/doc/$name -name readme 2>/dev/null`" state=$? echo $readme >> $filelist ;; esac exit $state