A Rake executable script, is this the correct approach

I humbly come to you, because searching, mostly google, has failed to
produce a reference, or someone who has done this.

We traditionally run Rakefile’s using either
$ rake
or
$ rake -f my.rake
etc

what if I wanted an executable script, say myscript, which is really a
rake task file, but runs as though it where run as above.
Attempt 1
#!/usr/bin/env rake
task :default do puts “Hello, Rake!” end
FAILED

Attempt 2
#!/usr/bin/env ruby
task :default do puts “Hello, Rake!” end
Rake::Task[:default].invoke
SUCCESS

So, is the latter really the best way? While it works I worry that rake
is somehow not setup the same way if the this had been run the
traditional way. Thanks

Well, attempt 1 is merely defining the task, the task then has to be
run,
which is what’s happening in Attempt 2.

When you type rake in the command line, what you are really doing is

rake default

Hopefully that explains what’s going on.

Jason

You missed the point and the sha-bang in attempt 1 which was
#!/usr/bin/env rake, not ruby.

I understand what rake is doing, what I want is an executable rake file
without having to explicitly run rake. Thanks

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs