Nox

Embeds node, npm and provides wrappers for running it.

Installation

If available in Hex, the package can be installed by adding nox to your list of dependencies in mix.exs:

def deps do
[
{:nox, "~> 0.1.0"}
]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/nox.

Usage

Get full path to executable:

Nox.which("node")

Get OS env for executing command in the node environment, for instance to give to env option of System.cmd/3:

env = Nox.env()
System.cmd("aglio", ["-i", "doc.in", "-o", "doc.out"], env: env)

Nox provides also wrappers for some well-know commands: see Nox.Npm, Nox.Grunt.

Command line parsers

Nox includes tools for parsing command line output, as for into option of System.cmd/3.

If you simply want to redirect command output to Logger:

System.cmd("echo", ["\"my tailor is rich\""], into: Nox.Cli.stream())

If you want to use a custom parser:

System.cmd("npm", ["install"], into: Nox.Cli.stream({Nox.Parsers.Npm, []}))

License

Nox source code is released under Apache 2 License.

Check the LICENSE file for more information.