Run command line scripts from within Rake tasks
My usual approach when writing Rake tasks is to import a library and then use its API:
require_relative '../slides'
namspace :slides do
desc 'Create an empty slideshow'
task :new do
Slides.new.write_to_disk
end
end
Sometimes that is impractical: the API is not public, or you need to invoke a standalone script which only has a command line interface.
I found out Rake implements a ruby
method which lets you invoke the ruby program directly:
task :new do
ruby 'create_slideshow.rb'
puts 'Created a new slideshow.'
end
There is also a sh
method, which allows you to run system commands. Make sure to use the multiple argument version and avoid passing it unfiltered user input.