New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

aws-cli-js

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aws-cli-js - npm Package Compare versions

Comparing version 0.0.1 to 0.0.2

184

lib/index.js

@@ -24,5 +24,5 @@ /**

var DockerMachine = function (opts) {
if (!(this instanceof DockerMachine)) {
return new DockerMachine(opts);
var AwsCli = function (opts) {
if (!(this instanceof AwsCli)) {
return new AwsCli(opts);
}

@@ -33,8 +33,39 @@

DockerMachine.prototype.command = function (command, callback) {
AwsCli.prototype.command = function (command, options, callback) {
var self = this;
var exec_command = 'docker-machine ';
var exec_command = 'aws ';
if (!callback) {
callback = options;
options = null;
}
return Promise.resolve().then(function () {
var params = _.reduce(self.driver, function (result, value, key) {
var env_vars = ('HOME PATH AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY ' +
'AWS_SESSION_TOKEN AWS_DEFAULT_REGION ' +
'AWS_DEFAULT_PROFILE AWS_CONFIG_FILE').split(' ');
//console.log('env_vars =', JSON.stringify(env_vars));
var env = _.reduce(env_vars, function (result, value) {
if (process.env[value]) {
result[value] = process.env[value];
}
return result;
}, {});
//console.log('env =', env);
if (self.aws_access_key_id) {
env.AWS_ACCESS_KEY_ID = self.aws_access_key_id;
}
if (self.aws_secret_access_key) {
env.AWS_SECRET_ACCESS_KEY = self.aws_secret_access_key;
}
var params = _.reduce(options, function (result, value, key) {
result += util.format('--%s %s ', key, value);

@@ -48,7 +79,3 @@ return result;

var exec_options = {
env: {
HOME: process.env.HOME,
PATH: process.env.PATH,
DEBUG: ''
}
env: env
};

@@ -68,2 +95,3 @@ if (self.cwd) {

};
//return result;
return extractResult(result);

@@ -74,118 +102,44 @@

module.exports = DockerMachine;
module.exports = AwsCli;
var extractResult = function (result) {
var extracterArray = [
{
re: / ls /,
run: function (resultp) {
var obj = JSON.parse(resultp.raw);
var lines = obj[0].split(os.EOL);
try {
var obj = JSON.parse(result.raw);
result.object = JSON.parse(obj[0]);
} catch (e) {
result.object = e;
}
return (resultp.machineList = cliTable2Json(lines));
}
},
{
re: / config /,
run: function (resultp) {
var obj = JSON.parse(resultp.raw);
var str = obj[0];
var extractValue = function (strp, name, rep) {
var re = rep || new RegExp("--" + name + "=\"([\\S]*)\"", 'i');
var m;
//var extracterArray = [
//{
// re: / ls /,
// run: function (resultp) {
// var obj = JSON.parse(resultp.raw);
// var lines = obj[0].split(os.EOL);
if ((m = re.exec(strp)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
}
// return (resultp.machineList = '???');
// }
//}
//];
return (m && m[1]) ? m[1] : null;
};
//extracterArray.forEach(function (extracter) {
// var re = extracter.re;
// var str = result.command;
// var m;
resultp.machine = {
tlsverify: function (strp) {
var re = /--tlsverify/;
var m;
// if ((m = re.exec(str)) !== null) {
// if (m.index === re.lastIndex) {
// re.lastIndex++;
// }
// // View your result using the m-variable.
// // eg m[0] etc.
// return extracter.run(result);
// }
//});
if ((m = re.exec(strp)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
}
return (m && m[0] && m[0] === '--tlsverify') || false;
}(str),
tlscacert: extractValue(str, 'tlscacert'),
tlscert: extractValue(str, 'tlscert'),
tlskey: extractValue(str, 'tlskey'),
host: extractValue(str, null, /-H=tcp:\/\/(.*):/),
port: extractValue(str, null, /-H=tcp:\/\/.*:(\d*)/)
};
return resultp;
}
},
{
re: / inspect /,
run: function (resultp) {
var obj = JSON.parse(resultp.raw);
resultp.machine = JSON.parse(obj[0]);
return resultp;
}
},
];
extracterArray.forEach(function (extracter) {
var re = extracter.re;
var str = result.command;
var m;
if ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
return extracter.run(result);
}
});
return result;
};
var cliTable2Json = function (lines) {
lines[0] = lines[0].toLowerCase();
var headerline = lines[0];
var result = [];
var column_headers = headerline.split(/ [ ]+/);
var next_index = 1;
var locations = _.reduce(column_headers, function (result2, title) {
result2[title] = {
start: headerline.indexOf(title),
end: next_index < column_headers.length ? headerline.indexOf(column_headers[next_index++]) : headerline.indexOf(title) + 1000
};
return result2;
}, {});
lines.slice(1).forEach(function (line) {
if (line.trim().length === 0) {
return;
}
var item = {};
result.push(item);
_.forEach(locations, function (position, title) {
//console.log('position', title, 'position = ', position);
item[title] = line.substring(position.start, position.end).trim();
});
});
return result;
};
{
"name": "aws-cli-js",
"version": "0.0.1",
"version": "0.0.2",
"description": "A node.js wrapper for the aws command line interface",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

@@ -29,13 +29,27 @@ # aws-cli-js

var awsCli = new AwsCli({
profile: 'default',
aws_access_key_id: 'PUTVALUEHERE',
aws_secret_access_key: 'abcdefPUTVALUEHERE'
aws_secret_access_key: 'abcdefPUTVALUEHERE',
});
awsCli.command('?? ').then(function (data) {
awsCli.command('iam list-users').then(function (data) {
console.log('data = ', data);
});
//data = {
// command: 'aws iam list-users ',
// raw: '["{\\n \\"Users\\": [\\n {\\n \\"UserName\\": \\"developer\\", \\n \\"PasswordLastUsed\\": \\"2015-10-03T17:58:49Z\\", \\n \\"CreateDate\\": \\"2015-06-03T07:37:25Z\\", \\n \\"UserId\\": \\"AIDAJB73CFKOYE2FBGGM2\\", \\n \\"Path\\": \\"/\\", \\n \\"Arn\\": \\"arn:aws:iam::031641171132:user/developer\\"\\n }\\n ]\\n}\\n",""]',
// object:
// {
// Users:
// [{
// UserName: 'developer',
// PasswordLastUsed: '2015-10-03T17:58:49Z',
// CreateDate: '2015-06-03T07:37:25Z',
// UserId: 'AIDAJBXXXXXXXXXXXXXXXXX',
// Path: '/',
// Arn: 'arn:aws:iam::03XXXXXXXXX:user/developer'
// }]
// }
//}
```

@@ -47,6 +61,23 @@

awsCli.command('??', function (err, data) {
awsCli.command('iam list-users', function (err, data) {
console.log('data = ', data);
});
//data = {
// command: 'aws iam list-users ',
// raw: '["{\\n \\"Users\\": [\\n {\\n \\"UserName\\": \\"developer\\", \\n \\"PasswordLastUsed\\": \\"2015-10-03T17:58:49Z\\", \\n \\"CreateDate\\": \\"2015-06-03T07:37:25Z\\", \\n \\"UserId\\": \\"AIDAJB73CFKOYE2FBGGM2\\", \\n \\"Path\\": \\"/\\", \\n \\"Arn\\": \\"arn:aws:iam::031641171132:user/developer\\"\\n }\\n ]\\n}\\n",""]',
// object:
// {
// Users:
// [{
// UserName: 'developer',
// PasswordLastUsed: '2015-10-03T17:58:49Z',
// CreateDate: '2015-06-03T07:37:25Z',
// UserId: 'AIDAJBXXXXXXXXXXXXXXXXX',
// Path: '/',
// Arn: 'arn:aws:iam::03XXXXXXXXX:user/developer'
// }]
// }
//}
```

@@ -53,0 +84,0 @@

@@ -22,4 +22,4 @@ /**

var assert = require('chai').assert;
var util = require('util');
var config = require('../my_config.json');

@@ -38,11 +38,16 @@

it('command ??? should pass', function (done) {
it('command iam list-users should pass', function (done) {
this.timeout(1 * 60 * 1000);//1 minute
var awsCli = new AwsCli();
var awsCli = new AwsCli({
aws_access_key_id: config.aws.accessKeyId,
aws_secret_access_key: config.aws.secretAccessKey
//cwd: 'path to current working directory'
});
assert.isNotNull(awsCli);
var failed = false;
var err = null;
awsCli.command('ip machinename').then(function (data) {
console.log('data = ', data);
awsCli.command('iam list-users').then(function (data) {
//console.log('data = ', util.inspect(data, {depth: 10}));
assert.isNotNull(data);

@@ -57,4 +62,22 @@ }).finally(function () {

it('command iam list-users should pass with callback', function (done) {
this.timeout(1 * 60 * 1000);//1 minute
it('command ls2 should fail', function (done) {
var awsCli = new AwsCli({
aws_access_key_id: config.aws.accessKeyId,
aws_secret_access_key: config.aws.secretAccessKey
//cwd: 'path to current working directory'
});
assert.isNotNull(awsCli);
var failed = false;
var err = null;
awsCli.command('iam list-users', function (err, data) {
//console.log('data = ', util.inspect(data, { depth: 10 }));
assert.isNotNull(data);
done();
});
});
it('command aim2 should fail', function (done) {
var awsCli = new AwsCli();

@@ -64,3 +87,3 @@ assert.isNotNull(awsCli);

var err = null;
awsCli.command('ls2').then(function (data) {
awsCli.command('iam2 list-users').then(function (data) {
//console.log('data = ', data);

@@ -81,7 +104,8 @@ assert.isNotNull(data);

});
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc