Cake-Bake [ka-ke-ba-ke] allows to bake Cakefile into native Crystal code.
Because sometimes cake tasks are wanted to be run as binaries.
For example, to run from a Docker container with an already built application:
docker run my-crystal-app bin/cake db:migrate.
Add this to your application's
targets: cake: main: src/run/cake.cr dependencies: cake-bake: github: vladfaust/cake-bake.cr
require "./src/some_file" # These requires task :foo puts "bar" end
require "cake-bake" Cake.bake("../../Cakefile") # Full path to Cakefile needed to properly resolve requires (see above) # The Cakefile code will be put here, yay
Then execute from
$ crystal src/run/cake -- foo bar $ crystal build src/run/cake $ ./cake foo bar $ shards build $ ./bin/cake foo bar
- Fork it ( https://github.com/vladfaust/cake-bake.cr/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
- @vladfaust Vlad Faust - creator, maintainer