我想将fabfile重用于多个项目。
config.ini
[project1]
git_repo = git@github/project1
project_path = '/path/project1'
[project2]
git_repo = git@github/project22
project_path = '/path/project2'
fabfile.py
from fabric import task
config = configparser.ConfigParser()
config.read("conf.ini")
@task
def getcode(connection, project, git_repo):
args = config['project]
connection.run("git clone {}".format(git_repo))
@task
def pushcode(connection, project, git_repo):
args = config['project]
connection.run("git push {}".format(git_repo))
如何避免在每种方法中都使用args = config['project]
。我可以使用fab命令fab -H web1 --project=project1 pushcode
传递自定义参数。需要帮助。
答案 0 :(得分:0)
是的。
实际上,let n=3
let madeWithLiteral = [];
for(let i=0;i<n;i++){
madeWithLiteral.push([]);
}
madeWithLiteral[0].push(3);
madeWithLiteral;
CLI工具与Invoke的fab
CLI工具具有相同的选项。
看看that part of Invoke's docs,您会发现它与您提出的语法相同:)
答案 1 :(得分:0)
当然,您可以将参数传递给fab任务,这些任务在invoke.task
下进行屋顶任务调用。
我将举一个例子,你怎么做:
fabfile.py
from fabric import task
@task
def sampleTask(connection, name, laste_name, age):
print("The firstname is ", name)
print("The lastname is ", laste_name)
print("The age is ", age)
,然后从命令行这样调用它: 命令行
fab sampleTask -n peshmerge -l Mo -a 28
输出应如下所示:
[vagrant@localhost fabric]$ fab sampleTask -n peshmerge -l Mo -a 28
The firstname is Peshmerge
The lastname is Mo
The age is 28
注意:为您的任务指定一个包含下划线(_)的名称将导致错误
No idea what 'sample_task' is!
命名任务参数也是如此。