#!/usr/bin/env coffee logger = require 'torch' optimist = require 'optimist' _ = require 'lodash' moment = require 'moment' core = require '..' optimist.usage 'Usage: axiom [<--arg> ...]' parsed = optimist.options {} # Should correspond to an installed NPM module # named 'axiom-' exposing service 'serviceName' [moduleName, serviceName] = parsed.argv._ # TODO: Change this to instead alert specific error and print usage information unless moduleName logger.red "Missing required positional argument: 'moduleName'" logger.yellow parsed.help() return unless serviceName logger.red "Missing required positional argument: 'serviceName'" logger.yellow parsed.help() return # Anything with the prefix 'axiom' extends the config. E.G. `axiom server run --axiom.foo=true` {axiom} = parsed.argv # Extract the remaining args for the service toOmit = [ # Special optimist properties '_', '$0' # Axiom config arguments 'axiom' ] args = _.omit parsed.argv, toOmit core.init({loggers: [{writer: 'console', level: args.log or 'info'}]}) channel = "#{moduleName}.#{serviceName}" core.request channel, args, (err, results) -> if err? logger.red err.stack unless _.isEmpty(results) logger.green results