Wie kann ich einen Parameter an eine Fabric-Task übergeben, wenn ich "fab" über die Befehlszeile aufrufe? Beispielsweise:
def task(something=''):
print "You said %s" % something
$ fab task "hello"
You said hello
Done.
Ist es möglich, dies ohne Aufforderung zu tun fabric.operations.prompt
?
hello world
scheinen jedoch notwendig zu sein?world
eine neue Aufgabe war.'hello world'
würde eine Python String'hello world'
, sondern"hello world"
würde zuhello world
(was wahrscheinlich ist es, was die meisten Menschen wollen würde).bar=True
Befehl in Fabric alsbar='True'
kein boolescher Wert übergebenFabric-Argumente werden mit sehr einfachem Parsing von Zeichenfolgen verstanden, daher müssen Sie beim Senden ein wenig vorsichtig sein.
Hier einige Beispiele für verschiedene Möglichkeiten, Argumente an die folgende Testfunktion zu übergeben:
Ich verwende hier ein doppeltes Anführungszeichen, um die Shell aus der Gleichung herauszunehmen, aber einfache Anführungszeichen sind für einige Plattformen möglicherweise besser. Beachten Sie auch die Escapezeichen für Zeichen, die Fabric als Trennzeichen betrachtet.
Weitere Details finden Sie in den Dokumenten: http://docs.fabfile.org/en/1.14/usage/fab.html#per-task-arguments
quelle
Fügen Sie in Fabric 2 einfach das Argument zu Ihrer Aufgabenfunktion hinzu. So übergeben Sie das
version
Argument beispielsweise an taskdeploy
:Führen Sie es wie folgt aus:
Fabric dokumentiert die Optionen sogar automatisch:
quelle
Sie müssen alle Python-Variablen als Zeichenfolgen übergeben, insbesondere wenn Sie zum Ausführen der Skripts einen Unterprozess verwenden. Andernfalls wird eine Fehlermeldung angezeigt. Sie müssen die Variablen separat wieder in int / boolean-Typen konvertieren.
quelle
Wenn jemand Parameter in Fabric2 von einer Aufgabe an eine andere übergeben möchte, verwenden Sie dazu einfach das Umgebungswörterbuch:
Und Renn:
quelle