init project
This commit is contained in:
+48
@@ -0,0 +1,48 @@
|
||||
var Client = require('ssh2').Client,
|
||||
http = require('http');
|
||||
|
||||
module.exports = function (opt) {
|
||||
var conn = new Client();
|
||||
var agent = new http.Agent();
|
||||
|
||||
agent.createConnection = function (options, fn) {
|
||||
try {
|
||||
conn.once('ready', function () {
|
||||
conn.exec('docker system dial-stdio', function (err, stream) {
|
||||
if (err) {
|
||||
handleError(err , fn);
|
||||
}
|
||||
|
||||
fn(null, stream);
|
||||
|
||||
stream.addListener('error', (err) => {
|
||||
handleError(err, fn);
|
||||
});
|
||||
stream.once('close', () => {
|
||||
conn.end();
|
||||
agent.destroy();
|
||||
});
|
||||
});
|
||||
}).on('error', (err) => {
|
||||
handleError(err, fn);
|
||||
})
|
||||
.connect(opt);
|
||||
conn.once('end', () => agent.destroy());
|
||||
|
||||
} catch (err) {
|
||||
handleError(err);
|
||||
}
|
||||
};
|
||||
|
||||
function handleError(err, cb) {
|
||||
conn.end();
|
||||
agent.destroy();
|
||||
if (cb) {
|
||||
cb(err);
|
||||
} else {
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
return agent;
|
||||
};
|
||||
Reference in New Issue
Block a user