2

我为本地开发人员创建了一个 Rake 任务,它将构建项目,开始观察它以进行自动编译,并启动一个瘦服务器以查看已编译的应用程序。

我实现了 Foreman 以允许设置项目现在依赖的本地 ENV 变量。它工作得很好——除了它还需要在 Windows 上工作。

我的解决方案是解析 .env 文件并在我启动服务器时手动设置变量,ala:

$ 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{}, 和反引号来执行它,但没有成功。有什么建议么?

4

1 回答 1

4

尝试Kernel#system使用env参数

env = {'FOO' => '123'}
cmd = 'echo $FOO'
system(env, cmd) # => prints "123", returns true
于 2012-05-03T22:57:57.740 回答