2012-05-03 6 views
2

프로젝트를 빌드 할 로컬 개발자를위한 레이크 작업을 만들었습니다. 자동 컴파일을 위해 감시를 시작하고, Thin 서버를 시작하여 컴파일 된 응용 프로그램을 봅니다.Ruby에서 Windows 명령에 로컬 ENV 변수를 설정하십시오.

프로젝트가 현재 의존하는 로컬 ENV 변수를 설정할 수 있도록 Foreman을 구현했습니다. 그것은 훌륭하게 작동합니다 - 윈도우에서도 작동해야합니다.

내 솔루션은 .env의 파일을 구문 분석하는 것이었다 내가 서버를 시작에 직접 바르를 설정, ALA : 나는 손으로 자신을 실행할 때

$ MY_ENV_VAR=12345 ruby -rubygems app.rb 

그것은 잘 작동합니다. 내 레이크 작업을 통해 해당 명령을 실행하려고한다면 - sh %{MY_ENV_VAR=12345 ruby -rubygems app.rb}을 실패합니다 : 행운과

내가 sh %{}, exec, system, %x{} 그것을 실행하려고했습니다
Command failed with status (127): [MY_ENV_VAR=12345 ruby -rubygems app.rb...] 

및 역 따옴표. 어떤 제안? Kernel#system with the env argument를 사용

답변

4

시도 :

env = {'FOO' => '123'} 
cmd = 'echo $FOO' 
system(env, cmd) # => prints "123", returns true 
+1

감사합니다! 이것은 나를 미치게했다! – redhotvengeance

관련 문제