(gelöst) Automatische Flash-Aktualisierung mit awk (oder gre

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
deberik
Beiträge: 1177
Registriert: 30.09.2009 13:27:23

(gelöst) Automatische Flash-Aktualisierung mit awk (oder gre

Beitrag von deberik » 18.01.2015 17:00:04

Hallo, ich habe mir schon vor langer Zeit ein kleines Skript für meine Aktualisierungen unter Testing erstellt. Jetzt habe ich noch eine automatische Flash-Aktualisierung eingebaut, die wahrscheinlich unnötig kompliziert ist. Hat wer von euch Verbesserungsvorschläge oder alternative Ideen zur Implementierung?

Code: Alles auswählen

update-flashplugin-nonfree --status | awk 'NR==1 {oldversion = $NF} NR==2 {newversion = $NF; if (oldversion < newversion) system("update-flashplugin-nonfree --install --verbose"); else print "Flash="$NF}'
Eine Ausgabe des Befehls ohne awk ist

Code: Alles auswählen

# update-flashplugin-nonfree --status
Flash Player version installed on this system  : 11.2.202.429
Flash Player version available on upstream site: 11.2.202.429
flash-mozilla.so - auto mode
  link currently points to /usr/lib/flashplugin-nonfree/libflashplayer.so
/usr/lib/flashplugin-nonfree/libflashplayer.so - priority 50
Current 'best' version is '/usr/lib/flashplugin-nonfree/libflashplayer.so'.
Kann ich die letzten Felder zweier Zeilen direkt vergleichen ohne sie in einer Variable zu speichern, wie bei obigen Befehl?
Zuletzt geändert von deberik am 20.01.2015 12:37:55, insgesamt 1-mal geändert.
Debians Paketbeschreibungen übersetzen? Hilf mit!

newdeb
Beiträge: 134
Registriert: 03.02.2011 11:11:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Frankfurt

Re: Automatische Flash-Aktualisierung mit awk (oder grep, ..

Beitrag von newdeb » 18.01.2015 18:16:48

Wozu die Statusabfrage? Der Installer sollte so schlau sein, den Status implizit zu ermitteln. So jedenfalls würde ich die Angabe in der Manpage interpretieren:
--install
To install, update or remove the Adobe Flash Player depending on downloaded last minute information from Debian about suitable versions.

uname
Beiträge: 12403
Registriert: 03.06.2008 09:33:02

Re: Automatische Flash-Aktualisierung mit awk (oder grep, ..

Beitrag von uname » 18.01.2015 20:19:58

Laut Quelltext (https://packages.debian.org/source/jess ... in-nonfree) wird nur installiert, wenn es eine neue Version gibt also $installed von $upstream abweicht. Somit kann man meiner Meinung nach "--install" gefahrlos jederzeit aufrufen. Hoffe ich ;-)

Code: Alles auswählen

case "$ACTION" in

        --install)
                [ "$verbose" != "yes" ] || echo "selected action = $ACTION"

                get_installed_version
                [ "$verbose" != "yes" ] || echo "installed version = $installed"

                get_upstream_version
                [ "$verbose" != "yes" ] || echo "upstream version = $upstream"

                if [ "$installed" != "" -a "$upstream" != "" -a "$installed" = "$upstream" ]
                then

                        [ "$verbose" != "yes" ] || echo "upstream version $upstream is already installed"


cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Automatische Flash-Aktualisierung mit awk (oder grep, ..

Beitrag von cronoik » 18.01.2015 20:48:33

michaa7 hatte schon einmal etwas gebaut: http://debianforum.de/forum/viewtopic.p ... ilit=flash
Hilf mit unser Wiki zu verbessern!

deberik
Beiträge: 1177
Registriert: 30.09.2009 13:27:23

Re: Automatische Flash-Aktualisierung mit awk (oder grep, ..

Beitrag von deberik » 18.01.2015 23:37:44

Oh, da war ich wohl noch beim Stand vor Wheezy (genauer vor 1:3); da wurde noch nicht auf eine neue Version überprüft, sondern immer neu installiert. Das vereinfacht den Aufruf natürlich, danke :D

Ich bin trotzdem neugierig, wie der awk-Befehl vereinfacht werden kann. Falls dazu noch wer etwas schreiben mag...
Debians Paketbeschreibungen übersetzen? Hilf mit!

newdeb
Beiträge: 134
Registriert: 03.02.2011 11:11:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Frankfurt

Re: Automatische Flash-Aktualisierung mit awk (oder grep, ..

Beitrag von newdeb » 19.01.2015 12:11:50

Theoretisch könntest du einen speziellen Record-Separator (RS) wählen, z.B. den Anfang der 3. Zeile:

Code: Alles auswählen

update-flashplugin-nonfree --status | \
awk -F'[ \n]' 'BEGIN {RS="flash-mozilla.so"} NR==1{if ($13<$21) print "Neue Version!"}'
Die Feldtrenner sind Blank und Newline, und man muss nur noch die Feldnummern (13, 21) abzählen.
Aber ist das jetzt einfacher? Sieht imho ziemlich obskur aus. 8O

deberik
Beiträge: 1177
Registriert: 30.09.2009 13:27:23

Re: Automatische Flash-Aktualisierung mit awk (oder grep, ..

Beitrag von deberik » 20.01.2015 12:37:24

newdeb hat geschrieben:Theoretisch könntest du einen speziellen Record-Separator (RS) wählen, z.B. den Anfang der 3. Zeile:

Code: Alles auswählen

update-flashplugin-nonfree --status | \
awk -F'[ \n]' 'BEGIN {RS="flash-mozilla.so"} NR==1{if ($13<$21) print "Neue Version!"}'
Die Feldtrenner sind Blank und Newline, und man muss nur noch die Feldnummern (13, 21) abzählen.
Aber ist das jetzt einfacher? Sieht imho ziemlich obskur aus. 8O
Kürzer ist es, aber wohl ein wenig fehleranfälliger, falls sich die Feldnummern ändern. Aber interessanter Ansatz :)
Debians Paketbeschreibungen übersetzen? Hilf mit!

Antworten