2016-06-01 00:31:29 +00:00
|
|
|
"use strict";
|
2017-06-15 15:52:22 +00:00
|
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
2016-06-01 00:31:29 +00:00
|
|
|
require("typings-global");
|
2016-11-23 11:38:38 +00:00
|
|
|
const smartssh_classes_sshdir_1 = require("./smartssh.classes.sshdir");
|
|
|
|
const smartssh_classes_sshconfig_1 = require("./smartssh.classes.sshconfig");
|
|
|
|
class SshInstance {
|
|
|
|
constructor(optionsArg = {}) {
|
2016-06-01 00:31:29 +00:00
|
|
|
optionsArg ? void (0) : optionsArg = {};
|
2016-06-25 00:29:34 +00:00
|
|
|
this._sshKeyArray = [];
|
|
|
|
this._sshConfig = new smartssh_classes_sshconfig_1.SshConfig(this._sshKeyArray);
|
2016-06-25 13:30:57 +00:00
|
|
|
this._sshDir = new smartssh_classes_sshdir_1.SshDir(this._sshKeyArray, this._sshConfig, optionsArg.sshDirPath);
|
2016-06-24 00:49:55 +00:00
|
|
|
this._sshSync = optionsArg.sshSync;
|
2016-06-01 00:31:29 +00:00
|
|
|
}
|
|
|
|
;
|
2016-11-23 11:38:38 +00:00
|
|
|
// altering methods
|
|
|
|
addKey(sshKeyArg) {
|
|
|
|
this._syncAuto('from');
|
2016-06-25 00:29:34 +00:00
|
|
|
this._sshKeyArray.push(sshKeyArg);
|
2016-11-23 11:38:38 +00:00
|
|
|
this._syncAuto('to');
|
|
|
|
}
|
2016-06-01 00:31:29 +00:00
|
|
|
;
|
2016-11-23 11:38:38 +00:00
|
|
|
removeKey(sshKeyArg) {
|
|
|
|
this._syncAuto('from');
|
|
|
|
let filteredArray = this._sshKeyArray.filter((sshKeyArg2) => {
|
2016-06-01 02:18:31 +00:00
|
|
|
return (sshKeyArg != sshKeyArg2);
|
|
|
|
});
|
2016-06-25 00:29:34 +00:00
|
|
|
this._sshKeyArray = filteredArray;
|
2016-11-23 11:38:38 +00:00
|
|
|
this._syncAuto('to');
|
|
|
|
}
|
2016-06-01 01:57:17 +00:00
|
|
|
;
|
2016-11-23 11:38:38 +00:00
|
|
|
replaceKey(sshKeyOldArg, sshKeyNewArg) {
|
|
|
|
this._syncAuto('from');
|
2016-06-01 02:25:59 +00:00
|
|
|
this.removeKey(sshKeyOldArg);
|
|
|
|
this.addKey(sshKeyNewArg);
|
2016-11-23 11:38:38 +00:00
|
|
|
this._syncAuto('to');
|
|
|
|
}
|
2016-06-01 01:57:17 +00:00
|
|
|
;
|
|
|
|
//
|
2016-11-23 11:38:38 +00:00
|
|
|
getKey(hostArg) {
|
|
|
|
this._syncAuto('from');
|
|
|
|
let filteredArray = this._sshKeyArray.filter(function (keyArg) {
|
|
|
|
return (keyArg.host === hostArg);
|
2016-06-01 00:31:29 +00:00
|
|
|
});
|
|
|
|
if (filteredArray.length > 0) {
|
|
|
|
return filteredArray[0];
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
return undefined;
|
|
|
|
}
|
2016-11-23 11:38:38 +00:00
|
|
|
}
|
2016-06-01 00:31:29 +00:00
|
|
|
;
|
2016-11-23 11:38:38 +00:00
|
|
|
get sshKeys() {
|
|
|
|
this._syncAuto('from');
|
|
|
|
return this._sshKeyArray;
|
|
|
|
}
|
2016-06-24 00:49:55 +00:00
|
|
|
;
|
2016-11-23 11:38:38 +00:00
|
|
|
// FS methods
|
2016-06-24 00:49:55 +00:00
|
|
|
/**
|
|
|
|
* write SshInstance to disk
|
|
|
|
*/
|
2016-11-23 11:38:38 +00:00
|
|
|
writeToDisk(dirPathArg) {
|
|
|
|
this._sync('to', dirPathArg);
|
|
|
|
}
|
2016-06-24 00:49:55 +00:00
|
|
|
/**
|
|
|
|
* read ab SshInstance from disk
|
|
|
|
*/
|
2016-11-23 11:38:38 +00:00
|
|
|
readFromDisk(dirPathArg) {
|
|
|
|
this._sync('from', dirPathArg);
|
|
|
|
}
|
2016-06-25 00:29:34 +00:00
|
|
|
/* ===============================================================
|
|
|
|
========================= Private Methods ========================
|
|
|
|
================================================================*/
|
2016-11-23 11:38:38 +00:00
|
|
|
_makeConfig() {
|
|
|
|
}
|
2016-06-24 00:49:55 +00:00
|
|
|
/**
|
|
|
|
* method to invoke SshInstance _sync automatically when sshSync is true
|
|
|
|
*/
|
2016-11-23 11:38:38 +00:00
|
|
|
_syncAuto(directionArg) {
|
2016-06-24 00:49:55 +00:00
|
|
|
if (this._sshSync)
|
|
|
|
this._sync(directionArg);
|
2016-11-23 11:38:38 +00:00
|
|
|
}
|
2016-06-24 00:49:55 +00:00
|
|
|
/**
|
|
|
|
* private method to sync SshInstance
|
|
|
|
*/
|
2016-11-23 11:38:38 +00:00
|
|
|
_sync(directionArg, dirPathArg) {
|
|
|
|
if (directionArg === 'from') {
|
2016-06-28 00:10:51 +00:00
|
|
|
this._sshDir.readFromDir(dirPathArg); // call sync method of sshDir class;
|
2016-06-01 01:57:17 +00:00
|
|
|
}
|
2016-11-23 11:38:38 +00:00
|
|
|
else if (directionArg === 'to') {
|
2016-06-28 00:10:51 +00:00
|
|
|
this._sshDir.writeToDir(dirPathArg);
|
2016-06-01 01:57:17 +00:00
|
|
|
}
|
2016-06-24 00:49:55 +00:00
|
|
|
else {
|
2016-06-01 01:57:17 +00:00
|
|
|
throw new Error("directionArg not recognised. Must be 'to' or 'from'");
|
2016-06-01 00:31:29 +00:00
|
|
|
}
|
2016-11-23 11:38:38 +00:00
|
|
|
}
|
2016-06-01 00:31:29 +00:00
|
|
|
;
|
2016-11-23 11:38:38 +00:00
|
|
|
}
|
2016-06-01 00:31:29 +00:00
|
|
|
exports.SshInstance = SshInstance;
|
2017-06-15 17:25:12 +00:00
|
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzc2guY2xhc3Nlcy5zc2hpbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c3NoLmNsYXNzZXMuc3NoaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBdUI7QUFJdkIsdUVBQWtEO0FBQ2xELDZFQUF3RDtBQUd4RDtJQUtFLFlBQVksYUFBeUQsRUFBRTtRQUNyRSxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxFQUFFLENBQUE7UUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUE7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLHNDQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ2xELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxnQ0FBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDcEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFBO0lBQ3BDLENBQUM7SUFBQSxDQUFDO0lBRUYsbUJBQW1CO0lBQ25CLE1BQU0sQ0FBRSxTQUFpQjtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDdEIsQ0FBQztJQUFBLENBQUM7SUFDRixTQUFTLENBQUUsU0FBaUI7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN0QixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQWtCO1lBQzlELE1BQU0sQ0FBQyxDQUFDLFNBQVMsSUFBSSxVQUFVLENB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
|