portsnap + UPDATING utility

rmoe

thanks no
Moin

Nachdem ich mich nun oft genug geärgert habe, wenn ich wieder zu verpennt oder zu faul war, brav in /usr/ports/UPDATING zu gucken nach portsnap fetch update (und nachdem ich mich ehrlich gesagt auch oft genug gefragt habe, warum ich selbst das Einsortieren in "neu" erledigen soll) ...

habe ich psupdsh (wie portsnap updating and show) geschrieben.

Der Normalfall, also "portsnap fetch update" und anschließend in UPDATING gucken ist sehr simpel: Einfach "psupdsh" eingeben und fertig, denn genau dieser Normalfall ist auch der default für psupdsh.

Aber das Ding kann noch einiges mehr:

Vor allem mal zeigt psupdsh nur neue Einträge, wobei "neu" default bedeutet "seit dem letzten update", also das, was wohl die meisten wollen/brauchen.

- l macht Linien zwischen die einzelnen UPDATING Einträge. Klingt doof, ich weiss, erleichtert aber den Überblick.

A propos Überblick:

- s zeigt die Einträge einzeln, schön einen nach dem anderen. Weiter geht's jeweils mit irgendeiner Taste (und Ctrl-C bricht ab, wenn man vorzeitig aufhören will). Ist erheblich praktischer als more/less/most

-e steht für eval-only, sprich portsnap fetch update wird nicht aufgerufen. Praktisch, wenn man nur mal nach aktuellen UPDATING Einträgen schauen will.

-d date - macht das ganze Spielchen ab einem bestimmten Datum "date".

-o wie "option" erlaubt die Weitergabe von beliebigen Optionen an portsnap. Gut für Leute, die z.B. ihre eigene portsnap config haben (z.B. "psupdsh -o 'f /verzeichnis/meine_config' -s").

Zuletzt, als "positional arguments" können beliebige portsnap Befehle angegeben werden, die psupdsh dann an portsnap durchreicht. Default (also ohne ausdrückliche Angabe) ist, was für für die meisten der Normalfall ist "fetch update" (z.B. nur holen: "psdupdsh fetch")

Ihr werdet's schon sicher schon gemerkt haben ... psupdsh ist trotz aller optionalen Funktionalität stark darauf ausgerichtet, den Normalfall im Sinne von "do the right thing" (Wie in "Lies UPDATING nach dem uodate!!!) einfach und bequem zu machen.

Das Ganze ist (bewusst) 1 einzelne Python Datei ohne exotische Abhängigkeiten. Gebraucht wird nur Python (> 2.5) wie's standardmäßig mit FreeBSD kommt.

Da ich momentan (und wohl noch für einige Wochen) ohne server bin, kann ich euch leider keinen download link anbieten. Aber falls es hier (sorry, ich bin neu hier und kenne mich noch nicht aus) irgendeine download zone gibt oder jemand die Datei (knapp unter 5 KB) hosten will, bitte einfach melden.

Ach und: Das Ding hat eine brauchbare -h Option und eine man page gibts auch.
Installationsroutine habe ich mir gespart. Einfach psupdsh z.B. nach /usr/local/bin kopieren und die man Datei nach /usr/share/man/man1 kopieren. Das war's.

Bei Interesse einfach melden - R

------ For english speakers:

psupdsh, a small Python program, allows you to run portsnap (fetch update) - and - to then automagically see any new entries in UPDATING. Standard Python (2.x) is good enough; no further dependencies.
While being strongly oriented toward that usual case, psupdsh is quite versatile. There is also a (english) man page for it.

best regards - R

P.S.: Ich bin bekennender jwm (Joe's window manager) Nutzer und wollte unbedingt auch sowas wie openbox-menu, also die Möglichkeit automatisch alle installierten Programme im Menü zu haben (wenn möglich mit icons).
Ich möchte jetzt nicht gleich noch einen thread aufmachen, aber falls hier noch andere jwm Fans sein sollten: Es gibt nun jwmamenu, das sehr einfach in die jwm config eingebunden werden kann und ratzfatz (z.B. bei jedem Start) ein komplettes Menü baut. Das Programm ist sehr schnell, sehr klein und kann so einigen Schnickschnack.
Bei Interesse einfach melden.
 
Hallo

Lade die beiden Tools doch irgendwo z.B. github.com hoch. Dann können die die Interesse haben das Zeugs mal anschauen und testen :)

Gruss
 
Hallo

Lade die beiden Tools doch irgendwo z.B. github.com hoch. Dann können die die Interesse haben das Zeugs mal anschauen und testen :)

Gruss

Danke für den Tip, aber ich wollte nicht irgendwo ein account anlegen dafür (und schon gar nix mit git).
 
schau dir mal fossil an, eine Binary inkl Versionsverwaltung, Webinterface / -server, Wiki und Bugtracker. :)
 
schau dir mal fossil an, eine Binary inkl Versionsverwaltung, Webinterface / -server, Wiki und Bugtracker. :)

Danke für den sehr guten Tip, aber nicht nötig. Weil Hipp's fossil nämlich das ist, was ich verwende - und völlig zufrieden bin.
(Ich wollte oben nur vornehm vermeiden, was zu git zu sagen und dann heftig über git zu lästern *g).
 
So, zuerst mal ein großes Dankeschön an den user h0sch1, der mir freundlicherweise webspace zur Verfügung gestellt hat!

Dort, bei http://rmoe.anukis.de/ gibt's nun psupdsh, jwmamenu und (neu) obamenu (eine openbox version von jwmamenu) zum runterladen.

Für diejenigen, die sich jwmamenu schon hier geholt haben: Es gibt eine neue Version 1.1.5, die nun auch category icons mit Wunsch-Theme kann. Einfach mal vorbeischauen; es gibt einen (geupdateten) screenshot dort.

Viel Spass damit!
 
Vielen Dank Raimund für psupdsh!

Ein nettes kleines für mich sehr hilfreiches Tool.
Aus meiner Sicht schön geschrieben und mit einer ausführlichen manpage.

Danke.

Ach ja, und Danke fürs bereitstellen auf anukis! Hätte ich fast vergessen.
 
Ich kann vergnügt mitteilen, dass psupdsh "gewachsen" und gediehen ist und mittlerweile in v. 1.2.0 vorliegt.

Wesentliche neue features:

Eine Suchfunktion, die es ermöglicht, gezielt nur Einträge zu einem bestimmten Paket (oder Gruppe) anzusehen. Kombiniert mit der --date option lassen sich so Suchen machen wie "Zeige mir allte UPDATING entries seit Mai 2012 zum ruby ports".

psupdsh kann nun einen vom user definierten upgrader (wie portupgrade oder portmaster) aufrufen nachdem die UPDATING entries gezeigt wurden. Was nur vernünftig ist, weil doch öfter mal ports andere als die Standardeinstellung des upgraders brauchen.

In den Fällen, wo Standard reicht, ist psupdsh nun ein all-in-one ports update management tool, das alles Nötige in einem Aufwasch macht.

Zudem habe ich den code refactored und in einem state machine verifier geprüft, um Sicherheit ins Sachen Korrektheit zu haben und evtl. künftige Erweiterungen zu erleichtern.

Die neue Version nebst ebenfalls geupdateter man page gibt's auf meiner privaten Projektseite, die mir (Danke nochmal) h0sch1 freundlicherweise zur Verfügung gestellt hat.

Viel Spass!
 
  • Like
Reactions: lme
Öhm ,will ja nicht demotivieren, aber pkg updating gibts auch, wäre es da nicht wesentlich sinnvoller im Zweifel einen Patch beizusteuern?
 
Handbuch, 5.4

"pkg is not a replacement for port management tools like ports-mgmt/portmaster or ports-mgmt/portupgrade. These tools can be used to install third-party software from both binary packages and the Ports Collection, while pkg installs only binary packages."

Ich finde pkgng gut, aber mein Thema waren ports.
 
Handbuch, 5.4

"pkg is not a replacement for port management tools like ports-mgmt/portmaster or ports-mgmt/portupgrade. These tools can be used to install third-party software from both binary packages and the Ports Collection, while pkg installs only binary packages."

Ich finde pkgng gut, aber mein Thema waren ports.

pkg updating betrifft die Ports. Es liest /usr/ports/UPDATING und parsed es mit o.g. Kriterien (Datum, Port ...), es weiß sogar welche Ports installiert sind und kann dir eben genau für die auch Dinge anzeigen (siehe man pkg-updating).
 
Da hat pkg-updating eine schöne Funktionalität, die psupdsh nicht hat, die nämlich, sich nur auf installierte ports/packages zu beziehen.

Was aber nichts daran ändert, dass es als Teil von pkgng primär auf packages ausgerichtet ist und übrigens auch nicht die von mir gewünschte Funktionalität hat.

psupdsh ist ganz klar auf ports bezogen und für Leute gedacht, die (relativ viel) mit ports arbeiten. Und es ist aus einem klaren Juckreiz/Problem entstanden, dem nämlich, dass UPDATING zu lesen unerlässlich ist und integraler Bestandteil des Ablaufs sein sollte. Wie ich weiss, viele andere auch wissen und/oder erlebt haben und häufige Fragen in Foren zu dem Bereich zeigen, ist es warum auch immer so, dass ports als weniger handlich wahrgenommen werden als packages und dass viele, vielleicht sogar die meisten Probleme einer bestimmten Klasse im Zusammenhang mit ports eben daraus entstehen, dass Updating angucken nach portsnap ein eigener Arbeitsschritt ist - und oft nicht beachtet oder schlicht vergessen.

Ein weiterer Punkt ist, siehe relativ viel Probleme mit dem ruby update, dass die meisten user, die da Probleme hatten, einfach nicht bequem und leicht an die info in UPDATING kamen (die sie zuerst mal ignoriert hatten).

Und, ehrlich gesagt, die man pages von pkg wären (und waren) nicht der Ort, an dem ich nach einer Lösung geguckt hätte.

Wer lieber pkg-updating verwenden will, der kann da ja tun.
 
Back
Top