RPM: Rückgabe von Werten aus eingeschlossenem RPM-Makro
Dies ist eine Folgefrage zuRPM: Laden des Bash-Skripts in% pre scriptlet.
Ich versuche einige Utility-Funktionen als Makros zu definieren, damit ich später%include
ihnen, wenn auch andere RPM-Pakete erstellt werden. Nehmen wir an, ich möchte eine Funktion habentestfunc()
, mit dem ich prüfen möchte, ob auf dem Zielsystem etwas vorhanden ist. Wenn die Bedingung nicht erfüllt ist, möchte ich die Ausführung meines RPM @ abbreche%pre
scriptlet.
Things ich habe versucht:
Definieren einer Bash-Funktion im Makro
common.spec
%define importfunction() (testfunc() { echo "Cancelling installation!" ; exit 1 ; })
package.spec
%include SPECS/common.spec
...
%pre
%importfunction
testfunc
RPM install output
testfunc: Befehl nicht gefunden
Exit direkt aus dem Makro
common.spec
%define testfunc() (echo "Cancelling installation!" ; exit 1)
package.spec
%include SPECS/common.spec
...
%pre
%testfunc
echo "Installation still running :("
RPM install output
Installation abbrechen!
Installation läuft noch:
Das Problem ist, dass das%pre
scriptlet wird in diesem Fall nicht beendet.
Frage
Wie kann ich die Ausführung von @ abbreche%pre
von meinem Makro?Ist es möglich, einen Wert aus dem Makro zurückzugeben und diese während @ in einer Variablen zu speicher%pre
?