我为本地开发者创build了一个Rake任务,它将构build项目,开始观察它进行自动编译,并启动Thin服务器以查看已编译的应用程序。
我实现了Foreman以允许设置当前项目所依赖的本地ENVvariables。 它工作得很好 – 除了它也需要在Windows上工作。
我的解决scheme是parsing.env文件,并手动设置variables我启动服务器,阿拉:
$ MY_ENV_VAR=12345 ruby -rubygems app.rb
手工执行时效果很好。 但是,如果我尝试通过我的Rake任务执行该命令 – sh %{MY_ENV_VAR=12345 ruby -rubygems app.rb}
,则失败:
Command failed with status (127): [MY_ENV_VAR=12345 ruby -rubygems app.rb...]
我已经尝试用sh %{}
, exec
, system
, %x{}
执行它,并且没有运气的反引号。 有什么build议么?
尝试使用env
参数使用coreel#system
:
env = {'FOO' => '123'} cmd = 'echo $FOO' system(env, cmd) # => prints "123", returns true