사용자가 cmd 행에서 실행할 스크립트를 선택하고 스크립트가 실시간으로 (가까이) 실행될 때 스크립트의 출력을보고 싶습니다. 나는 이것이 안전하지 않다는 것을 안다. 그것은 작은 팀에서 셀프 서비스 수준을 허용하는 데 사용되는 내부 도구이다.Rails - cmd 라인 스크립트를 실행하고 실시간으로 출력을 표시하는 방법은 무엇입니까?
다음은 cmd 행에서 뭔가를 실행하고 출력을 실시간으로 표시하는 루비 스크립트의 빠른 예입니다. 내가 알아낼 수없는 것은 이것을 레일에서 작동시키는 방법입니다.
cmd = %q[echo '3...'; sleep 1;
echo '2...'; sleep 1;
echo '1...'; sleep 1;
echo 'Liftoff!']
puts '------ beginning command ------'
output_log = []
IO.popen(cmd).each do |line|
puts line
output_log << "[#{Time.now}] #{line}"
end.close # Without close, you won't be able to access $?
puts '------ done with command ------'
puts "The command's exit code was: #{$?.exitstatus}"
puts 'Here is the log:'
puts output_log.join('')
기존 보석이 있습니까? Ajax 요청을 통해 명령을 실행하고 버퍼로 출력 한 다음 스크립트가 실행될 때 버퍼를 플러시하고 실행중인 페이지로 응답을 보낼 수 있습니까? 도움이된다면 iframe을 사용해도 괜찮습니다.
도움이나 올바른 방향을 가리키는 도움말은 대단히 감사합니다!
이 스크립트는 무엇을하고 있습니까? 스크립트를 리포지토리에 저장하고 사람들이 로컬에서 실행하도록하는 방법이 있습니까? 이 작업을 확장 가능한 방식, 즉 둘 이상의 호스트에서 수행하려면 각 스크립트의 진행을 어딘가에 유지해야 할 수 있습니다. 예를 들어, 데이터베이스에 저장할 수 있습니다. – Max
스크립트는 기술적이지 않은 사용자가 GUI에서 테스트 환경을 스스로 관리 할 수 있도록합니다. 규모는 문제가 아니지만 데이터베이스 나 플랫 파일에 어딘가에 쓰는 것이 유일한 방법이었습니다. 레일즈는 당신을 위해 많은 것을 할 수 있습니다. 그래서 나는 이것을 할 보석이있을 것이라고 생각했습니다. 감사. – user797963