[Idee] Wrapper-Skript für Templates - ein Prototyp

  • 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):

    Code
    sudo ./simsalavim /etc/vdr/lifeguard.conf


    Das Skript sollte auch mit relativen Pfad-Angaben zurechtkommen.


    Wer Verbesserungsvorschläge oder gute Ideen hat, kann sich gerne melden (ich mache gerade die ersten Schritte in der Bash :unsch)

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Einmal editiert, zuletzt von seahawk1986 ()

  • Schön das mal jemand auf die Templates eingeht statt nur drüber her zuziehen.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Prima Sache!


    Wenn ich unsere Distribution richtig verstehe, dann kannst Du diese Stelle....

    Code
    stop xine        
                        stop openbox
                        stop vdr
    
    
                        start vdr
                        start openbox
                        start xine


    ...noch vereinfachen, man müsste noch von "xine" abstrahieren, weil nicht alle User xine verwenden. (Haben wir ein Upstart-Script /etc/init/xine.conf?)


    Ich denke, wenn Du

    Code
    stop vdr
    
    
                        start vdr


    machst, wird gleichzeitig auch das VDR-Frontend (bei Dir xine) gestoppt. Ich glaube, Openbox bleibt aber aktiv. Den gleichen Effekt hätte auch


    Code
    sudo signal-event restart-vdr


    Die Frage ist, ob wirklich immer ein Restart von diesen Komponenten nötig ist.


    Gruß
    hepi


  • Das mit dem restart xine hatte ich von der Wiki-Seite übernommen. Ich nutze eher xineliboutput und habe gestern in der VM noch nicht nachgeschaut, ob das gebraucht wird, wenn xine verwendet wird.


    Du hast recht, das Stoppen und Neustarten des VDR macht natürlich vor allem dann Sinn, wenn Konfigurationdsdateien des VDR bearbeitet wurden - dann füge ich lieber noch eine Option für ein process-template ohne Stop/Start ein:

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    4 Mal editiert, zuletzt von seahawk1986 ()

  • Das "stop xine" aus dem Wiki richtet zwar keinen Schaden an, da es aber kein Upstart Script /etc/init/xine.conf in yaVDR 0.x gibt, ist es völlig überflüssig, das Kommando aufzurufen. Genauso könnte man "stop doktortitel" eingeben, es macht nix. Ich habe in yaVDR kein Template gefunden für ein xine-Upstart-Script: http://www.yavdr.org/developer-zone/template-overview/


    Möglicherweise ist es ein nutzereigenes Script des Wiki-Users, der den Absatz reingestellt hat? Ich lösche es mal im Wiki. stop openbox ist auch nicht nötig, weil bei einer Xine-Parameter-Änderung nur das VDR-Frontend neu gestartet werden muss. Ich habe es im Wiki geändert.


    Gruß
    hepi

  • Ok, ist korrigiert. Außerdem neu: Ist kein Template vorhanden, wird die Datei nun auch direkt mit dem Editor geöffnet.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Einmal editiert, zuletzt von seahawk1986 ()

  • Gibt es noch Leute, die Lust haben, das Skript mal zu testen?

    Dateien

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo Seahawk,
    ich werde es heute Abend mit den üblichen Verdächtigen (tvm2vdr_channelconf,remote.conf,channels.conf etc) sofort testen und dann bescheid geben.
    Grüße,
    Markus

  • Seahawk1986, das ist ein tolles Tool, vielen Dank dafür !
    - Habe es gerade mal getestet, und ein paar Kleinigkeiten sind noch drin!


    1) ich habe eine neue, zusätzliche Datei angelegt mit deinem Tool.
    Die wird aber ausschließlich bei den Standard-Templates abgelegt.
    (du schriebst was von "bekommen einen Dummy als Referenz", ich hätte an dieser Stelle erwartet dass die neuen Dateien dann in beiden Pfaden liegen.


    2) wenn ich "p" wähle, wird eine Datei generiert.
    Gehe ich danach mit "q" raus, dann erzählt er mir, dass KEINE Datei generiert wurde. Das ist etwas verwirrend.
    Aber das ist wohl nur Kosmetik und nicht weiter schlimm.


    3) ein bisschen mehr Geschwätzigkeit fände ich gut.
    z.B. könnte der Pfad (oder zumindest ein Hinweis "custom" vs. "default" hinter den jeweiligen Dateien stehen, dann wüßte man besser wo man gerade rumschraubt. (auch wenn's eigentlich klar sein sollte!)


    4) könntest du evtl. eine Art "Diff"einbauen für die selbst angepassten Files.
    Damit könnte man dann immer zügig schauen, wo man vom Distributionsstandard abweicht.



    Das alles ändert nichts, du hast eine sehr coole Idee umgesetzt.
    Super!



    Grüßchen,
    der Marcus



    PS: Wie nennen denn diejenigen Leutchen ihr Skript, die nano oder so als Editor verwenden ? :unsch

    Hardware: Zalman HD160XT; Asus H97M-Plus, 1024MB RAM, Digital Devices Cine S2 (rev 7), Atric-Einschalter, NEC3520 DVD-Laufwerk, Samsung 256 GB SSD-Festplatte --> darauf yaVDR 0.6
    Hifi: Denon AVR4306, Samsung UE40ES6300

  • Hi Seahawk,
    Ich hab probiert die tvm2vdr_channelmap.conf zu bearbeiten weil die bei einem Upgrade immer mit der Satellitenversion überschrieben wird.
    Anscheinend ist diese Datei aber nicht getemplated.



    Code
    markus@vdr3:~$ sudo ./simsalavim /var/lib/vdr/plugins/tvm2vdr/tvm2vdr_channelmap.conf 
    /var/lib/vdr/plugins/tvm2vdr/tvm2vdr_channelmap.conf
    Probing templates for /var/lib/vdr/plugins/tvm2vdr/tvm2vdr_channelmap.conf
    No templates found. You can edit this file directly.

    Ich kann dann die Datei mit nano editieren und speichern und dann war es das aber auch.


    Ich werde es morgen noch einmal mit der remote.conf probieren.

  • Zitat

    Original von marcusfischer
    1) ich habe eine neue, zusätzliche Datei angelegt mit deinem Tool.
    Die wird aber ausschließlich bei den Standard-Templates abgelegt.
    (du schriebst was von "bekommen einen Dummy als Referenz", ich hätte an dieser Stelle erwartet dass die neuen Dateien dann in beiden Pfaden liegen.


    Ja stimmt, das hatte ich vergessen einzubauen - ist jetzt ergänzt.
    Meine Idee dazu ist, dass er nur mit touch eine leere Datei im Pfad der originalen Templates erzeugt (denn aus dem Verzeichnis liest das Skript die Dateinamen) und die bearbeitete Datei als angepasstes Template im entsprechenden Verzeichnis landet, da die originalen Templates (da nicht updatesicher) sowieso nicht verändert werden sollten.
    So kann man auch den Originalzustand schnell wiederherherstellen, indem man das Verzeichnis mit den angepassten Templates mal schnell woanders hin verschiebt.


    Zitat

    Original von marcusfischer
    2) wenn ich "p" wähle, wird eine Datei generiert.
    Gehe ich danach mit "q" raus, dann erzählt er mir, dass KEINE Datei generiert wurde. Das ist etwas verwirrend.
    Aber das ist wohl nur Kosmetik und nicht weiter schlimm.


    Ist korrigiert.


    Zitat

    Original von marcusfischer
    3) ein bisschen mehr Geschwätzigkeit fände ich gut.
    z.B. könnte der Pfad (oder zumindest ein Hinweis "custom" vs. "default" hinter den jeweiligen Dateien stehen, dann wüßte man besser wo man gerade rumschraubt. (auch wenn's eigentlich klar sein sollte!)


    Man schraubt immer an Dateien im Verzeichnis für die angepassten Templates. Existiert noch keine angepasste Datei, wird sie aus dem Verzeichnis der Originaldateien kopiert. Das sagt er jetzt auch - aber der Editor geht zu schnell auf, als dass man es lesen könnte :unsch (wie wärs mit einem extra sleep x)?


    Zitat

    Original von marcusfischer
    4) könntest du evtl. eine Art "Diff"einbauen für die selbst angepassten Files.
    Damit könnte man dann immer zügig schauen, wo man vom Distributionsstandard abweicht.


    Das überlege ich auch, momentan vergleicht er nach der Bearbeitung einer Datei nur, ob sie sich vom Original-Template unterscheidet - falls nicht, wird sie aus dem Verzeichnis für angepasste Templates gelöscht. Ich habe jetzt mal einen Versuch mit diff gemacht (d:( Damit erstellt er eine temporäre Datei /tmp/templatediffs in der die Unterschiede der vorhandenen angepassten Templates von den Originalen auflistet werden und öffnet sie mit dem eingestellten Editor.


    Zitat

    Original von marcusfischer
    Das alles ändert nichts, du hast eine sehr coole Idee umgesetzt.
    Super!

    Freut mich, wenn es dir gefällt :]


    Zitat

    Original von marcusfischer
    PS: Wie nennen denn diejenigen Leutchen ihr Skript, die nano oder so als Editor verwenden ? :unsch


    Vielleicht nanokaboom oder emacsmagic oder joedoe ... :unsch

    Dateien

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Zitat

    Original von mk75
    Hi Seahawk,
    Ich hab probiert die tvm2vdr_channelmap.conf zu bearbeiten weil die bei einem Upgrade immer mit der Satellitenversion überschrieben wird.
    Anscheinend ist diese Datei aber nicht getemplated.


    Das ist mir auch schon passiert und ist ein gemeldeter Bug, siehe https://bugs.yavdr.com/issues/331
    Ich weiß nicht, ob es so klug ist mein Skript soweit auszubauen, dass es selbst Original-Template-Verzeichnisse aufbauen kann... Immerhin sind die auch nicht updatesicher :whatever

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Zitat

    Original von seahawk1986


    Das ist mir auch schon passiert und ist ein gemeldeter Bug, siehe https://bugs.yavdr.com/issues/331


    Die tvm2vdr_channelmap.conf wird bald nicht mehr überschrieben wenn diese vorhanden ist. Es kommt dann ein Abfrage wie es eben üblich ist bei vorhanden Conf's. Wegen diesem braucht man sich also den Kopf nicht zerbrechen ;)

    Gruß utiltiy



    VDR Projekte VDR Projects

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!