Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    hackfilepublic

    hackfile

    Parser for the hackfile format

    npm install hackfile
    

    build status

    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 = require('hackfile')
    var fs = require('fs')
     
    var parsed = hackfile(fs.readFileSync('hackfile', 'utf-8'))
    console.log(parsed)

    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

    Keywords

    none

    install

    npm i hackfile

    Downloadsweekly downloads

    5

    version

    4.0.0

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar
    • avatar