Tipps und Tricks – Setup.cfg Optionen global für alle Pakete setzen

Die APD Pakete lassen sich allesamt über die sogenannten Setup.cfg Optionen konfigurieren. Neben den applikationsabhängigen Optionen gibt es hier auch Einstellungen, die in jedem Paket vorhanden sind. Hierzu gehören z.B. die AskKillProcesses Optionen.

Wenn mir nun die Standardeinstellungen der Pakete nicht gefallen, kann es durchaus lästig sein, die Setup.cfg Optionen für jedes verwendete Softwarepaket anzupassen. Und immer, wenn ich etwas manuell einstellen muss, kann es passieren, dass ich es bei neuen Anwendungen doch mal vergesse.

Wie kann ich also die Setup.cfg Einstellungen modifizieren, ohne dies in jedem Softwarepaket selbst zu tun?

Die Lösung ist wie immer simpel: Wir passen unsere Pipelines an!

Die Setup.cfg ist dabei eine einfache Datei, die in jedem Softwarepaket liegt und durch den Pipelinetask „Prepare Setup.cfg“, mit den im APC hinterlegten Werten, gefüllt wird. Die Datei ist dabei genauso aufgebaut wie eine ini-Datei, was uns das Customizing einfach macht.

Es ist also lediglich notwendig einen „Edit Ini-File“ Task in unsere Pipelines hinzuzufügen, um bei jedem Paket einen festen Wert mitzugeben. Wichtig ist, dass der „Edit Ini-File“ Task nach dem „Prepare Setup.cfg“ Task läuft und dass wir dies in allen Pipelines machen, die wir verwenden.

Viel Spaß beim ausprobieren

Schöne Grüße

Michael Deitermann

6 „Gefällt mir“

Besten Dank für diesen Tipp! :slight_smile:

2 „Gefällt mir“

Danke für den wertvollen Tipp!

Ich habe noch Probleme damit, die Variable zum Ini Dateipfad richtig zu setzen. Dazu habe ich mir für die Pipeline eine Variable <Phase.SetupCFGPath> gebaut:
image

Diese habe ich dann in der Pipeline eingebunden für den Setup.cfg Pfad:

Wo liegt hier der Fehler?

LG
Jonathan

Hallo @Otthercreek,

der Zeitpunkt an dem der Task ausgeführt wurde ist nicht richtig. Die Variable <Run.EmpirumPackagePath> wird erst durch den Setup.inf Wrapper angelegt. Der Pfad existiert also zu dem Zeitpunkt noch nicht.

Wenn du den Task nach dem Setup.inf Wrapper ausführst, sollte es funktionieren.

Viele Grüße
Michael

1 „Gefällt mir“

Nach unserem Verständnis sind die AskKillProcesses unabhängig von der Software. Allerdings haben wir festgestellt, dass der Schlüssel FORCECONTINUEAFTERDEFERRALS bei der Anwendung 7-Zip fehlt. Was passiert, wenn wir in unserer Pipeline eine Phase einrichten, die diesen Wert initialisieren soll, dieser aber nicht existiert?