From 43be975523e569535422c3a22710b3893dd76d4c Mon Sep 17 00:00:00 2001 From: Benjamin Coe Date: Fri, 3 Jun 2016 16:10:10 -0700 Subject: [PATCH] feat: added the bin that executes which-cloud --- bin/which-cloud.js | 20 ++++++++++++++++++++ lib/which.js => index.js | 4 ++-- package.json | 5 ++++- test/cli.js | 22 ++++++++++++++++++++++ test/which.js | 4 ++-- 5 files changed, 50 insertions(+), 5 deletions(-) create mode 100755 bin/which-cloud.js rename lib/which.js => index.js (92%) create mode 100644 test/cli.js diff --git a/bin/which-cloud.js b/bin/which-cloud.js new file mode 100755 index 0000000..90655fd --- /dev/null +++ b/bin/which-cloud.js @@ -0,0 +1,20 @@ +#!/usr/bin/env node + +const which = require('../') +const argv = require('yargs') + .usage('$0 ') + .help() + .alias('help', 'h') + .demand(1, 'you must provide an ip to lookup') + .argv +const ip = argv._[0] + +which(ip, function (err, cloud) { + if (err) { + console.log('unknown') + process.exit(1) + } else { + console.log(cloud) + process.exit(0) + } +}) diff --git a/lib/which.js b/index.js similarity index 92% rename from lib/which.js rename to index.js index 5b767fd..ae93817 100644 --- a/lib/which.js +++ b/index.js @@ -1,7 +1,7 @@ const parallel = require('async').parallel const ipRangeCheck = require('ip-range-check') -const azure = require('./azure') -const aws = require('./aws') +const azure = require('./lib/azure') +const aws = require('./lib/aws') module.exports = function (ip, done) { var name = 'unknown' diff --git a/package.json b/package.json index aa87ac0..b1e4d03 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "1.0.0", "description": "given an ip address, return which cloud provider it belongs to (AWS, GCE, etc)", "main": "index.js", + "bin": "bin/which-cloud.js", "global": true, "scripts": { "pretest": "standard", @@ -46,6 +47,8 @@ "lib/aws.js", "lib/azure.js", "LICENSE.txt", - "data/PublicIPs.xml" + "data/PublicIPs.xml", + "index.js", + "bin/which-cloud.js" ] } diff --git a/test/cli.js b/test/cli.js new file mode 100644 index 0000000..fbb91b1 --- /dev/null +++ b/test/cli.js @@ -0,0 +1,22 @@ +/* global describe, it */ + +require('chai').should() + +const exec = require('child_process').exec + +describe('cli', function () { + it('displays help if no ip is provided', function (done) { + exec('./bin/which-cloud.js', function (err, stdout, stderr) { + err.message.should.match(/you must provide an ip to lookup/) + return done() + }) + }) + + it('looks up an ip', function (done) { + exec('./bin/which-cloud.js 94.245.97.0', function (err, stdout, stderr) { + if (err) return done(err) + stdout.should.match(/azure/) + return done() + }) + }) +}) diff --git a/test/which.js b/test/which.js index 1db63fb..64b542d 100644 --- a/test/which.js +++ b/test/which.js @@ -2,7 +2,7 @@ require('chai').should() -const which = require('../lib/which') +const which = require('../') describe('which', function () { it('returns appropriate response for azure ip', function (done) { @@ -14,7 +14,7 @@ describe('which', function () { }) it('returns appropriate response for aws ip', function (done) { - which('54.173.231.160', function (err, name) { + which('54.173.231.161', function (err, name) { if (err) return done(err) name.should.equal('aws') return done()