|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
I've written a small ruby cgi script which allows me to fork off a
rake process, which in turn forks off other processes interfacing with subversion and ant mostly. I have a long running rakefile and after a few minutes, it bails out with the following error message: ../rake:28: unexpected return (LocalJumpError) from ./rake:21:in `chdir' from ./rake:21#!/usr/bin/ruby Anyone got any ideas on what could cause this? The actual cgi script follows: require 'cgi' cgi = CGI.new unless cgi.has_key? 'rakefile' then cgi.out('text/plain') {'error: rakefile parameter not set'} return end BUILD_ROOT = '/opt/build/builds/' + cgi['rakefile'] target = cgi.has_key?('target') ? cgi['target'] : 'default' unless File.exists? BUILD_ROOT then cgi.out('text/plain') {'error: rakefile ' + cgi['rakefile'] + ' not found'} return end log = nil Dir.chdir BUILD_ROOT do begin results = `rake #{target} 2>&1` log = results raise RuntimeError.new(log.chomp!) unless $?.success? rescue => x cgi.out('text/plain') {'error: ' + x + "\n" + log } return end end cgi.out('text/plain') {'done: ' + cgi['rakefile'] + "\n" + log} -- Hans |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
On Dec 4, 7:37 pm, Hans Sjunnesson <hans.sjunnes...@gmail.com> wrote: > I've written a small ruby cgi script which allows me to fork off a > rake process, which in turn forks off other processes interfacing with > subversion and ant mostly. > <snip> As an addendum, the versions of what I'm using: ruby 1.8.5 (2006-08-25) [x86_64-linux] rake, version 0.7.1 -- Hans |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Alle marted=EC 4 dicembre 2007, Hans Sjunnesson ha scritto:
> I've written a small ruby cgi script which allows me to fork off a > rake process, which in turn forks off other processes interfacing with > subversion and ant mostly. > > I have a long running rakefile and after a few minutes, it bails out > with the following error message: > ./rake:28: unexpected return (LocalJumpError) > from ./rake:21:in `chdir' > from ./rake:21#!/usr/bin/ruby > > Anyone got any ideas on what could cause this? > > > The actual cgi script follows: > > require 'cgi' > > cgi =3D CGI.new > > unless cgi.has_key? 'rakefile' then > cgi.out('text/plain') {'error: rakefile parameter not set'} > return > end > > BUILD_ROOT =3D '/opt/build/builds/' + cgi['rakefile'] > target =3D cgi.has_key?('target') ? cgi['target'] : 'default' > > unless File.exists? BUILD_ROOT then > cgi.out('text/plain') {'error: rakefile ' + cgi['rakefile'] + ' not > found'} > return > end > > log =3D nil > > Dir.chdir BUILD_ROOT do > begin > results =3D `rake #{target} 2>&1` > log =3D results > raise RuntimeError.new(log.chomp!) unless $?.success? > rescue =3D> x > cgi.out('text/plain') {'error: ' + x + "\n" + log } > return > end > end > > cgi.out('text/plain') {'done: ' + cgi['rakefile'] + "\n" + log} > > -- > Hans I think this is not related to rake. The problem is that you are using retu= rn=20 when you're not in a method body, which is (I think) the only place return= =20 can be used. Looking at your code, I think you're using return to terminate= =20 execution after displaying an error message. In this case, you should use t= he=20 Kernel.exit method, instead. I hope this s Stefano |
|
![]() |
| Outils de la discussion | |
|
|