What is the best way to set something to do when a Rake task fails?
I’d like something like:
task :migrate_safely => [:backup, :migrate] do
rescue
if :backup
:restore
end
end
end
Is there a way to do anything similar?
What is the best way to set something to do when a Rake task fails?
I’d like something like:
task :migrate_safely => [:backup, :migrate] do
rescue
if :backup
:restore
end
end
end
Is there a way to do anything similar?
Robert J. wrote:
What is the best way to set something to do when a Rake task fails?
I’d like something like:
task :migrate_safely => [:backup, :migrate] do
rescue
if :backup
:restore
end
end
endIs there a way to do anything similar?
Does something like this work …
$migrate_failed = false
task :default => :migrate_safely
task :backup do
puts “Backing Up”
end
task :migrate do
begin
puts “Migrating”
fail “Oops”
rescue
$migrate_failed = true
end
end
task :restore do
puts “Restoring”
end
task :migrate_safely => [:backup, :migrate] do
Rake::Task[:restore].invoke if $migrate_failed
puts “Migrated Safely”
end
Jim W. wrote:
end
end
Thanks - will try it out. Not all fails throw exceptions (right? it’s
considered a fail if sh “false”), but I can always catch that and throw
an exception manually.
–
Posted via http://www.ruby-forum.com/.
Wow! The famous Jim himself uses ruby-forum. Should quiet all those
who complain about it
Robert J. wrote:
Jim W. wrote:
end
endThanks - will try it out. Not all fails throw exceptions (right? it’s
considered a fail if sh “false”), but I can always catch that and throw
an exception manually.
If the “sh” command fails, it will throw an exception that terminates
rake processing. So you shouldn’t have a problem with that.
change the fail line in the example to:
sh “ruby -e ‘exit(1)’”
to try it.
– Jim W.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs