• Stars
    star
    33
  • Rank 758,664 (Top 16 %)
  • Language
    Crystal
  • License
    MIT License
  • Created over 8 years ago
  • Updated about 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

CRystal mAKE library

CRake

A CRystal mAKE library.

docrystal.org

Just a Library

It is not a tool, just a library. It does not provide a CLI tool like crake. You do learn the library only, not need to learn some tool except for crystal command because it is the library of Crystal.

I believe this approach is better than another build command. It makes your build script powerful and flexible. And, it makes so possible to integrate another library. Simple is the best.

This library is inspired by Rake, gulp, tape and more. Thanks those libraries and tools ;)

Features

  • Looks like Rake. There are task, file, rule and namespace in this library.
  • Use the syntax of Crystal. It's smart.
  • Support concurrent build by default.

Installation

Add this to your application's shard.yml:

development_dependencies:
  crake:
    github: MakeNowJust/crake

Usage

Put this code into make.cr:

require "crake/global"

task "hello # say hello" do
  puts "Hello, CRake World!"
end

then you can run:

$ ln -s ./make.cr ./make
$ crystal make -- hello
Hello, CRake World!

If you want more information, you can run such a command:

$ crystal make -- hello -v
 INFO   (2015-11-20 12:34:20 +0000) ~~> "##toplevel##" starts
 INFO   (2015-11-20 12:34:20 +0000) ~~> "hello" starts
Hello, CRake World!
 INFO   (2015-11-20 12:34:20 +0000) ~~> "hello" finished
 INFO   (2015-11-20 12:34:20 +0000) ~~> "##toplevel##" finished

and you can see example/ directory.

Development

$ crystal make -- spec

TODO

  • Add task, rule, file and namespace.
  • Add FileList and utilities.
  • Support concurrent build (default.)
  • Support colored output (default.)
  • Write more documents.
  • Add more specs and examples.

Contributing

  1. Fork it (https://github.com/MakeNowJust/crake/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

More Repositories

1

quine

Quine Museum
Witcher Script
306
star
2

bashcached

memcached server built on bash + socat
Ruby
271
star
3

heredoc

Package heredoc provides the here-document with keeping indent.
Go
126
star
4

sushi-ware

🍣 "THE SUSHI-WARE LICENSE"
110
star
5

crustache

{{Mustache}} for Crystal 💎
Crystal
82
star
6

h.js

2KB JavaScript Syntax Highlighter
JavaScript
37
star
7

crystal-diff

A Crystal sequence differencing implementation
Crystal
37
star
8

bf.jq

Brainfuck interpreter written in jq -- This is the proof that jq is turing-complete!
JSONiq
37
star
9

mdlog

Markdown on `console.log`
JavaScript
31
star
10

noir

NOIR - Syntax Highlight Library for Crystal
Crystal
29
star
11

hotkey

This library provides HotKey for Go Language on Windows.
Go
28
star
12

rerejs

Re-implementation of ECMA-262 (JavaScript) RegExp
TypeScript
27
star
13

govm

GoVM is the Version Manager of Go.
Python
21
star
14

kantan-regex-book

作って学ぶ正規表現エンジン
Ruby
16
star
15

redp

Red Phosphorus - Pattern Match Library for ES2015 Era
JavaScript
14
star
16

nyanpass-cli

(๑¯Δ¯๑) < nyanpass.comの非公式コマンドラインツールなのん
Shell
13
star
17

tap

TAP (Test Anything Protocol) test framework for Crystal
Crystal
10
star
18

md.html

Markdown inside HTML
JavaScript
10
star
19

yuki-code

Yuki Code is monospaced font for programmers
TypeScript
10
star
20

quine_advent_calendar_2014

Quine Advent Calendar 2014
JavaScript
10
star
21

commlog

Commit Log as a Blog
8
star
22

8cc.cr

compile-time C compiler implemented as Crystal macros
Crystal
8
star
23

diary

makenowjust's diary
JavaScript
7
star
24

eff.js

One-Shot Algebric Effects on JavaScript Generators
JavaScript
7
star
25

tilt

TILT Is Loader of Template. It is generalized template engine interface.
Crystal
6
star
26

dali

Modern, Lightweight and Simple Generic Programming Library (i.e. shapeless alternative for Scala 2.13)
Scala
6
star
27

node-paiza-io

paiza.io API unofficial wrapper - you can run any language on Node.js!
JavaScript
5
star
28

mark-and-sweep-by-c

Mark & Sweep Implementation by C
C
4
star
29

carcin.vim

Vim plugin to provide utility functions for carc.in
Vim Script
4
star
30

serialport

serial port library for Crystal
Crystal
4
star
31

png

Ping Next Generation
Go
4
star
32

ecoji.rb

Ecoji implementation in Ruby
Ruby
4
star
33

amorphous

The most beautiful parser library
Crystal
3
star
34

AnalF_ck

淫夢プログラミング言語
D
3
star
35

bfa

Scala
3
star
36

plucid

Automatically exported from code.google.com/p/plucid
C
2
star
37

octocat-quine

The Octocat Quine - Let's propagate!
JavaScript
2
star
38

quine.codes

GitHub Pages of @MakeNowJust
JavaScript
2
star
39

dotfiles2

My dot files (version 2)
Shell
2
star
40

kemal-crustache-example

Simple wiki with kemal and crustache
Crystal
2
star
41

mutate-config

Mutate config files (~/.config/Mutate)
Python
2
star
42

bf2js

brainf*ck to javascript compiler
JavaScript
2
star
43

enumcase

enumcase checks every switch statement handles all const values of the type
Go
2
star
44

mpg321

The mpg321 wrapper for Node.js
JavaScript
2
star
45

eenext

EventEmitter for next generation, which is well-typed in TypeScript and supports Promise and AsyncIterator
TypeScript
2
star
46

dotfiles3

MakeNowJust's dotfiles version 3
Vim Script
1
star
47

dotfiles-old

My dotfiles
Shell
1
star
48

upload2

Ruby
1
star
49

bloem.js

Processing events and actions like Gardening in JavaScript.
JavaScript
1
star
50

react-promise

Promise as React Component
JavaScript
1
star
51

pendant

Small utility of accessor for Crystal
Crystal
1
star
52

crystal-grass

Crystal
1
star
53

bluesoul

bluesoul finds duplicate articles (e.g. the the) in comment text.
Go
1
star
54

yt321

Play audio from Youtube URL
JavaScript
1
star
55

scanver

Go
1
star
56

efi-quine

The Quine program run on UEFI without OS
C
1
star
57

cljinst

Clojure Installer
Shell
1
star
58

decks

MakeNowJust's slides here
JavaScript
1
star