cake v1.0.0
Cake
Build utility for Crystal.
Since we write our programs in Crystal, it is not too far fetched to write our build tasks in Crystal too. Furthermore, Crystal libraries and frameworks can be used also, which is sometimes beneficial.
This tool does not intend to be compatible with Rake. It is simply a build utility similar to Make.
Installation
cake
does not build an executable. Instead, a simple alias
should be defined in .bash_profile
. Common names for the file include cakefile.cr
, cakefile
or Cakefile
.
alias cake="crystal cakefile.cr --"
Development
When developing cake
, it needs to be installed in its own lib
folder. Thus, symlinks can be used to "install" it in the lib
folder..
$ cd lib/
$ ln -s ../src/cake
$ ln -s ../src/cake.cr
Usage
cake
must first be installed as a development dependency using shards install
.
development_dependencies:
cake:
git: https://github.com/ravernkoh/cake.git
branch: master
The targets have to be specified in a file. The following shows a simple Cakefile
.
require "cake"
default :two
phony :one
target :one, desc: "Being first isn't everything" do |env|
run "echo", ["Or is it really?"]
end
phony :two
target :two, deps: [:one], desc: "Being the second is nothing" do |env|
run "echo", ["Or so it was..."]
end
Cake.run
cake
can be used to build the targets. Ensure that it is run in the same directory as the Cakefile
.
# Builds target one
$ cake one
echo 'Or is it really?'
Or is it really?
# Builds target two and target one (dependency)
$ cake two
echo 'Or is it really?'
Or is it really?
echo 'Or so it was...'
Or so it was...
# `cake` alone builds the default target
$ cake
echo 'Or is it really?'
Or is it really?
echo 'Or so it was...'
Or so it was...
# Verbose flag can print more information
$ cake -v
Building target one...
echo 'Or is it really?'
Or is it really?
Building target two...
echo 'Or so it was...'
Or so it was...
cake
- 17
- 0
- 0
- 0
- 0
- over 6 years ago
- June 22, 2018
MIT License
Sun, 22 Dec 2024 04:15:49 GMT