2016-04-18 9 views
0

Ich benutze Omnibus, um ein cli-Paket zu erstellen, in dem ich einen Patch habe, den ich verwende, um ein paar Dinge in eine Datei zu injizieren. Der Patch selbst ist ein git diff. Ich möchte eine Umgebungsvariable als Teil des Inhalts verwenden. Etwas wie:wie bekomme ich linux patch util zu verwenden env var in patch-datei

diff --git a/cli/common.py b/cli/common.py 
index 3eb3efd..1feae45 100644 
--- a/cli/common.py 
+++ b/cli/common.py 
@@ -72,8 +72,12 @@ 

+++ - {'OLDPATH': 'NEWPATH/%{ENVVAR}}' 

dies ist die Syntax verwendet, wenn wir mit rpm Gebäude wurden. Es scheint nicht mehr zu funktionieren, und ich bin sicher, dass ENVVAR gesetzt ist, weil es in anderen Teilen des Packager-Skripts erfolgreich verwendet wird.

Danke!

Antwort

0

Das Programm patch weiß nichts über RPM-Variablen. Sie könntepatch in einer RPM-Spec-Datei mit der Diff-Datei als Here-Dokument ausführen, die versuchen würde, Werte im Skript zu ersetzen. Es könnte wie folgt aussehen:

patch <<EOF 
index 3eb3efd..1feae45 100644 
--- a/cli/common.py 
+++ b/cli/common.py 
@@ -72,8 +72,12 @@ 

+++ - {'OLDPATH': 'NEWPATH/%{ENVVAR}}' 
EOF 

Ein RPM wird nur ersetzen Variablen in seiner Scriptlets, nicht in separaten Dateien.

Weiterführende Literatur: