为所有任务耙自定义参数?
我想传递一个参数rake独立于我运行的任务。
例如:
rake my_arg=foo rake my_arg=foo :install rake my_arg=foo :upgrade rake my_arg=foo :bar
有没有办法做到这一点?
您可以像这样发送参数:
rake some_task arg1=value arg2=value
然后在rake任务中从ENV
拉出命名参数:
arg1 = ENV['arg1'] arg2 = ENV['arg2']
您还可以提供更多传统的命令行开关,如下所示:
rake some_task -- --arg1=value --arg2=value
然后使用OptionParser (或其他一些选项解析器)来解压缩ARGV
。 不要忘记额外的--
如果你想使用开关,那将告诉rake
停止解析命令行作为开关。
这些参数通过rake放入ENV[]
,模拟环境变量。 因此,您可以使用实际的环境变量。 例如:
export my_arg=foo rake install upgrade bar
既然你可以传递一个rake命令列表,你也可以这样做,即使它不是你原来问题的直接答案:
rake my_arg=foo install upgrade bar