#!/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' [extensionName, serviceName] = parsed.argv._ # TODO: Change this to instead alert specific error and print usage information unless extensionName logger.red "Missing required positional argument: 'extensionName'" 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 config = _.merge { loggers: [{writer: 'console', level: args.log or 'info'}] }, axiom core.init(config, null, args) channel = "#{extensionName}.#{serviceName}" core.request channel, {}, (err, results) -> if err? logger.red err.stack else logger.green 'Success!'