hackfile
Parser for the hackfile format
npm install hackfile
Format
The hackfile format is similar to a Makefile. There are two accepted formats:
{name}
{arg1}
{arg2}
...
{name} {arg1}
{arg2}
{arg3}
...
hackfiles can also be nested:
{name} {arg}
(indent){name} {arg}
(indent)(indent){arg}
(indent){arg}
...
Usage
Assuming you have a hackfile that looks like this
foo bar
bar echo c
echo d
bat
echo e
echo f
echo g
baz echo a b c d
The following example
var hackfile =var fs =var parsed =console
Prints out
[ [ 'foo', [ 'bar' ] ],
[ 'bar', [ [ 'echo', [ 'c' ] ], [ 'echo', [ 'd' ] ] ] ],
[ 'bat', [ [ 'echo', [ 'e' ] ], [ 'echo', [ 'f' ] ], [ 'echo', [ 'g' ] ] ] ],
[ 'baz', [ [ 'echo', [ 'a b c d' ] ] ] ] ]
Nested Example
hackfile input:
pipeline foo
pipe
echo hello
transform
cat
run echo
hello
parser output:
[[
"pipeline", [
"foo", [
"pipe", [[
"echo", [
"hello"
]
],
"transform",
"cat"
]], [
"run", [
"echo",
"hello"
]]
]
]]
License
MIT