-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathssh.js
More file actions
executable file
·63 lines (59 loc) · 1.44 KB
/
ssh.js
File metadata and controls
executable file
·63 lines (59 loc) · 1.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/* eslint no-unused-vars: 0 */
const name = 'ssh';
const pkgs = [
'ssh2',
'expand-tilde',
'js-htmlencode',
'lodash',
'ansicolor',
];
let fs;
let path;
let expandTilde;
let harbor_dir;
let Shipments;
let Lanes;
let render_input;
let render_work_preview;
let update;
let work;
let _;
let ssh;
let ansicolor;
let Client;
module.exports = {
next: () => {
expandTilde = require('expand-tilde');
harbor_dir = process.env.HARBORMASTER_HARBORS_DIR ||
process.env.HARBORMASTER_SSH_DIR ||
expandTilde('~/.harbormaster/harbors')
;
fs = require('fs');
path = require('path');
_ = require('lodash');
ansicolor = require('ansicolor');
ssh = require('ssh2');
Client = ssh.Client;
render_input = eval(
fs.readFileSync(harbor_dir + '/ssh/render_input.js').toString()
);
render_work_preview = eval(
fs.readFileSync(harbor_dir + '/ssh/render_work_preview.js').toString()
);
update = eval(
fs.readFileSync(harbor_dir + '/ssh/update.js').toString()
);
work = eval(
fs.readFileSync(harbor_dir + '/ssh/work.js').toString()
);
},
register: (lanes, users, harbors, shipments) => {
Shipments = shipments;
Lanes = lanes;
return { name, pkgs };
},
render_input: (values) => render_input(values),
render_work_preview: (manifest) => render_work_preview(manifest),
update: (lane, values) => update(lane, values),
work: (lane, manifest) => work(lane, manifest),
};