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.