Re: Paket postinstall-Skript anzeigen

From: Harold Gutch <logix(at)foobar.franken.de>
Date: Fri, 22 Mar 2019 15:03:48 +0100

Hi Olli,

On Fri, Mar 22, 2019 at 02:50:03PM +0100, Oliver Fromme wrote:
> Hallo Harold,
>
> Harold Gutch wrote:
> > ich stehe gerade etwas auf dem Schlauch, ich will mir zu einem Paket
> > das postinstall-Skript anzeigen lassen. Prinzipiell geht zwar so etwas
> > wie "pkg info -R -F foo-1.2.3.txz", aber da sind die einzelnen Skripte
> > "inline", außerdem liegt das Skript dort als ein String innerhalb
> > eines JSON oder YAMLs vor und alles mögliche an Zeichen ist dann
> > gequotet (z.B. ") und Newlines stehen dann in der Ausgabe als "\n".
> >
> > Klar, ich kann das ganze z.B. durch Python und das json-Modul jagen,
> > aber gibt es da nichts "builtin" in pkg(8)?
>
> Vor genau demselben Problem stand ich auch schon. Es gibt
> offenbar keinen „offiziellen“ Weg, um sich diese Skripte
> anzeigen zu lassen. Daher habe ich vor einiger Zeit mal
> ein Skript dafür gebastelt. ;-)
>
> http://inof.de/FreeBSD/scripts/pkg-script/
>
> Ruft man es mit dem Namen eines Pakts auf, werden die
> verfügbaren Skripte aufgelistet:
>
> $ pkg-script joe
> post-install
> pre-deinstall
>
> Gibt man den Namen eines Skripts an, wird dieses ausgegeben:
>
> $ pkg-script joe post-install
> case "etc/joe/ftyperc.sample" in
> /*) sample_file="etc/joe/ftyperc.sample" ;;
> *) sample_file="/usr/local/etc/joe/ftyperc.sample" ;;
> esac
> target_file="${sample_file%25.sample}"
> [...]

Praktisch, genau an so etwas dachte ich.

Der innerste Kern deines Skripts macht quasi exakt dasselbe wie das
womit ich mir vorhin auf die Schnelle beholfen habe (nur dass ich mich
auf das absolute Mininum an Errorchecks beschränkt habe):

  pkg info --raw-format json -R
    -F /usr/ports/packages/All/apache24-2.4.38.txz | \
    python -c 'import json, sys; j = json.load(sys.stdin); \
               s = j.get("scripts"); \
               print s.get("post-install") if s else ""'

Hätte ich keine guten Antworten bekommen dann hätte ich mir wohl auch
heute Abend ein kleines Skript gebastelt, aber so greife ich jetzt
gerne auf deins zurück.

Super, vielen dank!

Viele Grüße,
  Harold

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 22 Mar 2019 - 15:04:12 CET

search this site