Hallo, da es mitunter etwas aufwendig ist, die Template-Dateien von Hand nach /etc/yavdr/custom_templates zu kopieren und zu bearbeiten habe ich mit einem kleinen Wrapper-Skript für die Bash experimentiert.
Ähnlich wie bei process-template muss nur der Pfad zur Konfigurationsdatei angegeben werden, das Skript prüft, ob in /usr/share/yavdr/templates ein passender Ordner existiert und listet die darin enthaltenen Dateien auf. Diese können nun relativ bequem über ihre Nummer in der Liste angewählt und bearbeitet werden (der bevorzugte Editor kann über die Variable EDITOR eingestellt werden). Entspricht eine bearbeitete Datei der Ausgangsdatei in /usr/share/yavdr/templates so wird sie wieder aus /etc/yavdr/templates_custom gelöscht. Neu erstellte Dateien bekommen momentan noch unter /usr/share/yavdr/templates einen Dummy als Referenz (sonst wird das Auflisten der Templates etwas kompliziert).
Nach dem anpassen der Dateien kann man entweder process-template ausführen lassen (vdr und openbox werden zuvor gestoppt und danach wieder neu gestartet) oder das Skript einfach mit "q" beenden.
Um z.B. die Templates für /etc/vdr/lifeguard.conf anzupassen ruft man das Skript so auf (vorher noch ausführbar machen :versteck):
Das Skript sollte auch mit relativen Pfad-Angaben zurechtkommen.
#!/bin/bash
# simsalavim 0.1 by seahawk1986
# A script for convenient yaVDR template editing
### Options ###
# your preferred text-editor
EDITOR="/usr/bin/vim.tiny"
# paths for templates
CUSTOMTEMPLATESDIR=/etc/yavdr/templates_custom
ORIGINALTEMPLATES=/usr/share/yavdr/templates
#Check if script is run as root
if [ $(whoami) != "root" ]
then
echo "Script must be run as superuser!"
echo "Use sudo $0 <path to file> to start this script."
exit 2
fi
#echo "Script runs as $(whoami)"
# Get absolute path to file
TMPFILE=$( readlink -f "$1" )
echo $TMPFILE
if [ -f $TMPFILE ]
then
echo "Probing templates for $TMPFILE"
else
echo "Aborting script"
exit 1
fi
ODIR=$ORIGINALTEMPLATES$TMPFILE
if [ -d $ODIR ]
then
echo "Original templates are in $ODIR"
else
echo "No templates found."
exit 3
fi
# Check if path for custom templates exists
WDIR=$CUSTOMTEMPLATESDIR$TMPFILE
echo "Custom templates are in "$WDIR
if [ -d $WDIR ]
then
echo "Custom template path ${WDIR} already exists."
else
echo "Creating path for custom templates\: $WDIR"
mkdir -p $WDIR
fi
CHOICE="foobar"
LOOP=1
while [ $LOOP -eq 1 ]
do
# List template files
echo "Please choose a file to edit:"
ls -1 $ODIR | awk '{print "[" ((NR-1))+1 "]", $0}'
echo "Enter \"c\" to create a new file, \"p\" to process templates or \"q\" to quit."
FILES=(`ls -1 $ODIR`)
#echo ${FILES[*]}
read CHOICE
case "$CHOICE" in
c) echo "Please enter name for new file:"
read FNAME
$EDITOR $(echo $ODIR"/"$FNAME)
;;
p) echo "In order to process the templates VDR and GUI will be stopped and restarted afterwards."
echo "Type \"yes\" to continue"
read ANSWER
if [ $ANSWER = "yes" ]
then
echo "Processing $TMPFILE"
stop xine
stop openbox
stop vdr
process-template $TMPFILE
start vdr
start openbox
start xine
fi
;;
q) echo "Quit $0 without template processing."
exit 0
;;
*) if [ $CHOICE == "$CHOICE" ]
then
#echo "Chosen numer is $CHOICE"
CHOICE=`expr $CHOICE - 1`
#echo "Selected file is "${FILES[$CHOICE]}
FPATH=$(echo $WDIR"/"${FILES[$CHOICE]})
SPATH=$(echo $ODIR"/"${FILES[$CHOICE]})
if [ -f $FPATH ]
then
echo "$FPATH already exists"
else
cp $SPATH $FPATH
echo "copying file $SPATH to $FPATH"
fi
#echo $FPATH
$EDITOR $FPATH
cmp $FPATH $SPATH
if [ $? = 0 ]
then
#echo "Removing duplicate in custom templates: $FPATH"
rm $FPATH
else
echo "Changes applied"
fi
else
echo "No valid input..."
fi
;;
esac
done
exit 0
Alles anzeigen
Wer Verbesserungsvorschläge oder gute Ideen hat, kann sich gerne melden (ich mache gerade die ersten Schritte in der Bash :unsch)