vvauth 0.3.5 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +23 -14
- package/package.json +4 -4
package/index.js
CHANGED
|
@@ -6,6 +6,7 @@ const fs = require('fs');
|
|
|
6
6
|
const path = require('path');
|
|
7
7
|
const url = require('url');
|
|
8
8
|
const {spawn} = require('child_process');
|
|
9
|
+
const passthru = require('nyks/child_process/passthru');
|
|
9
10
|
|
|
10
11
|
const {parse} = require('yaml');
|
|
11
12
|
const semver = require('semver');
|
|
@@ -18,6 +19,8 @@ const request = require('nyks/http/request');
|
|
|
18
19
|
const drain = require('nyks/stream/drain');
|
|
19
20
|
const replaceEnv = require('nyks/string/replaceEnv');
|
|
20
21
|
const promiser = require('nyks/function/promiser');
|
|
22
|
+
const {args} = require('nyks/process/parseArgs')();
|
|
23
|
+
|
|
21
24
|
|
|
22
25
|
const {OpenSSHAgent} = require('ssh2/lib/agent');
|
|
23
26
|
const debug = require('debug');
|
|
@@ -30,11 +33,11 @@ const logger = {
|
|
|
30
33
|
|
|
31
34
|
|
|
32
35
|
const VAUTH_RC = [process.env.VAUTHRC, path.join(process.cwd(), ".vauthrc"), path.join(os.homedir(), ".vauthrc")];
|
|
33
|
-
const FUNCTION_NAME = "
|
|
34
|
-
const FUNCTION_DECL =
|
|
36
|
+
const FUNCTION_NAME = "venv";
|
|
37
|
+
const FUNCTION_DECL = `function ${FUNCTION_NAME}() { source <(/usr/bin/env vauth env --source); }`;
|
|
35
38
|
|
|
36
39
|
class vvauth {
|
|
37
|
-
constructor(
|
|
40
|
+
constructor() {
|
|
38
41
|
|
|
39
42
|
|
|
40
43
|
let {dependencies = {}} = require(path.resolve('package.json'));
|
|
@@ -46,14 +49,11 @@ class vvauth {
|
|
|
46
49
|
}
|
|
47
50
|
|
|
48
51
|
this.rc = {};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
let
|
|
53
|
-
|
|
54
|
-
let body = fs.readFileSync(vauth_rc, 'utf8');
|
|
55
|
-
this.rc = walk(parse(body), v => replaceEnv(v, {env : process.env}));
|
|
56
|
-
}
|
|
52
|
+
|
|
53
|
+
let vauth_rc = VAUTH_RC.filter(path => path && fs.existsSync(path))[0];
|
|
54
|
+
if(vauth_rc) {
|
|
55
|
+
let body = fs.readFileSync(vauth_rc, 'utf8');
|
|
56
|
+
this.rc = walk(parse(body), v => replaceEnv(v, {env : process.env}));
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
this.VAULT_ADDR = this.rc.vault_addr;
|
|
@@ -65,6 +65,13 @@ class vvauth {
|
|
|
65
65
|
console.error("vauth bound to '%s'", this.VAULT_ADDR);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
async run() {
|
|
69
|
+
let args = process.argv.slice(process.argv.indexOf("run") + 1);
|
|
70
|
+
let env = await this.env(), cmd = args.shift();
|
|
71
|
+
await passthru(cmd, args, {env : {...process.env, ...env}}).catch((err) => (console.error("run failure : ", err), process.exit(1)));
|
|
72
|
+
process.exit();
|
|
73
|
+
}
|
|
74
|
+
|
|
68
75
|
async connect() {
|
|
69
76
|
let VAULT_TOKEN, {rc : {ssh_auth, jwt_auth}} = this;
|
|
70
77
|
|
|
@@ -162,6 +169,7 @@ class vvauth {
|
|
|
162
169
|
this._publish_env(env);
|
|
163
170
|
process.exit();
|
|
164
171
|
}
|
|
172
|
+
return env;
|
|
165
173
|
}
|
|
166
174
|
|
|
167
175
|
|
|
@@ -270,8 +278,9 @@ const shellEscape = (arg) => {
|
|
|
270
278
|
};
|
|
271
279
|
|
|
272
280
|
//ensure module is called directly, i.e. not required
|
|
273
|
-
if(module.parent === null)
|
|
274
|
-
|
|
275
|
-
|
|
281
|
+
if(module.parent === null) {
|
|
282
|
+
let cmd = args.shift();
|
|
283
|
+
require('cnyks/lib/bundle')(vvauth, null, cmd ? [`--ir://run=${cmd}`, '--ir://raw'] : []);
|
|
284
|
+
}
|
|
276
285
|
|
|
277
286
|
module.exports = vvauth;
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vvauth",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Vault Auth helper",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
7
|
-
"
|
|
7
|
+
"vauth": "./index.js"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
10
|
"eslint": "eslint ."
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
"author": "",
|
|
13
13
|
"license": "ISC",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"cnyks": "^3.
|
|
15
|
+
"cnyks": "^3.2.1",
|
|
16
16
|
"debug": "^4.3.4",
|
|
17
|
-
"mout": "^1.
|
|
17
|
+
"mout": "^1.2.4",
|
|
18
18
|
"nyks": "^6.15.0",
|
|
19
19
|
"semver": "^7.5.4",
|
|
20
20
|
"ssh2": "^1.16.0",
|