| @ -0,0 +1,70 @@ | |||||
| #!/usr/bin/env node | |||||
| var dogapi = require("../"); | |||||
| var minimist = require("minimist"); | |||||
| var rc = require("rc"); | |||||
| var config = rc("dogapi", { | |||||
| api_key: null, | |||||
| app_key: null | |||||
| }); | |||||
| dogapi.initialize(config); | |||||
| var usage = [ | |||||
| "Usage:", | |||||
| "${command} --help", | |||||
| "${command} --version", | |||||
| "${command} now", | |||||
| "${command} then <seconds-ago>" | |||||
| ]; | |||||
| var help = []; | |||||
| for(var key in dogapi){ | |||||
| if(!dogapi.hasOwnProperty(key)){ | |||||
| continue; | |||||
| } else if(!dogapi[key].hasOwnProperty("getUsage") || typeof dogapi[key].getUsage !== "function"){ | |||||
| continue; | |||||
| } else if(!dogapi[key].hasOwnProperty("handleCli") || typeof dogapi[key].handleCli !== "function"){ | |||||
| continue; | |||||
| } | |||||
| usage = usage.concat(dogapi[key].getUsage()); | |||||
| if(dogapi[key].hasOwnProperty("getHelp") && typeof dogapi[key].getHelp === "function"){ | |||||
| help = help.concat(["\r\n"], dogapi[key].getHelp()); | |||||
| } | |||||
| } | |||||
| usage = usage.concat(help); | |||||
| usage = usage.join("\r\n").replace(/\$\{command\}/g, " dogapi"); | |||||
| var args = minimist(process.argv); | |||||
| var command = args._[2]; | |||||
| var subcommand = args._[3]; | |||||
| if(command === "now"){ | |||||
| console.log(dogapi.now()); | |||||
| } else if(command === "then" && args._.length > 3){ | |||||
| console.log(dogapi.now() - parseInt(args._[args._.length - 1])); | |||||
| } else if(dogapi.hasOwnProperty(command)){ | |||||
| if(subcommand && dogapi[command].hasOwnProperty(subcomand)){ | |||||
| dogapi[command].handleCli(subcommand, args, function(err, res){ | |||||
| if(err){ | |||||
| console.error(err); | |||||
| process.exit(1); | |||||
| } else { | |||||
| if(res === ""){ | |||||
| res = "success"; | |||||
| } | |||||
| console.log(res); | |||||
| } | |||||
| }); | |||||
| } else { | |||||
| var commandUsage = ["Usage:"].concat(dogapi[command].getUsage()); | |||||
| if(dogapi[command].hasOwnProperty("getHelp") && typeof dogapi[command].getHelp === "function"){ | |||||
| commandUsage = commandUsage.concat(["\r\n"], dogapi[command].getHelp()); | |||||
| } | |||||
| console.log(commandUsage.join("\r\n").replace(/\$\{command\}/g, " dogapi")); | |||||
| } | |||||
| } else if(args.version){ | |||||
| console.log(require("../package.json").version); | |||||
| } else { | |||||
| console.log(usage); | |||||
| } | |||||