2016-06-01 00:31:29 +00:00
|
|
|
"use strict";
|
|
|
|
require("typings-global");
|
|
|
|
var smartssh_classes_sshdir_1 = require("./smartssh.classes.sshdir");
|
|
|
|
var SshInstance = (function () {
|
|
|
|
function SshInstance(optionsArg) {
|
|
|
|
if (optionsArg === void 0) { optionsArg = {}; }
|
|
|
|
optionsArg ? void (0) : optionsArg = {};
|
2016-06-13 22:27:55 +00:00
|
|
|
this.sshKeyArray = [];
|
2016-06-24 00:49:55 +00:00
|
|
|
this._sshSync = optionsArg.sshSync;
|
|
|
|
this.sshDir = new smartssh_classes_sshdir_1.SshDir(this, optionsArg.sshDirPath);
|
2016-06-01 00:31:29 +00:00
|
|
|
}
|
|
|
|
;
|
2016-06-01 01:57:17 +00:00
|
|
|
//altering methods
|
2016-06-01 00:31:29 +00:00
|
|
|
SshInstance.prototype.addKey = function (sshKeyArg) {
|
2016-06-24 00:49:55 +00:00
|
|
|
this._syncAuto("from");
|
2016-06-01 02:18:31 +00:00
|
|
|
this.sshKeyArray.push(sshKeyArg);
|
2016-06-24 00:49:55 +00:00
|
|
|
this._syncAuto("to");
|
2016-06-01 00:31:29 +00:00
|
|
|
};
|
|
|
|
;
|
2016-06-01 01:57:17 +00:00
|
|
|
SshInstance.prototype.removeKey = function (sshKeyArg) {
|
2016-06-24 00:49:55 +00:00
|
|
|
this._syncAuto("from");
|
2016-06-01 02:18:31 +00:00
|
|
|
var filteredArray = this.sshKeyArray.filter(function (sshKeyArg2) {
|
|
|
|
return (sshKeyArg != sshKeyArg2);
|
|
|
|
});
|
|
|
|
this.sshKeyArray = filteredArray;
|
2016-06-24 00:49:55 +00:00
|
|
|
this._syncAuto("to");
|
2016-06-01 01:57:17 +00:00
|
|
|
};
|
|
|
|
;
|
|
|
|
SshInstance.prototype.replaceKey = function (sshKeyOldArg, sshKeyNewArg) {
|
2016-06-24 00:49:55 +00:00
|
|
|
this._syncAuto("from");
|
2016-06-01 02:25:59 +00:00
|
|
|
this.removeKey(sshKeyOldArg);
|
|
|
|
this.addKey(sshKeyNewArg);
|
2016-06-24 00:49:55 +00:00
|
|
|
this._syncAuto("to");
|
2016-06-01 01:57:17 +00:00
|
|
|
};
|
|
|
|
;
|
|
|
|
//
|
2016-06-01 00:31:29 +00:00
|
|
|
SshInstance.prototype.getKey = function (hostArg) {
|
2016-06-24 00:49:55 +00:00
|
|
|
this._syncAuto("from");
|
2016-06-01 02:18:31 +00:00
|
|
|
var filteredArray = this.sshKeyArray.filter(function (keyArg) {
|
2016-06-01 00:31:29 +00:00
|
|
|
return (keyArg.host == hostArg);
|
|
|
|
});
|
|
|
|
if (filteredArray.length > 0) {
|
|
|
|
return filteredArray[0];
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
return undefined;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
;
|
2016-06-01 01:57:17 +00:00
|
|
|
Object.defineProperty(SshInstance.prototype, "sshKeys", {
|
|
|
|
get: function () {
|
2016-06-24 00:49:55 +00:00
|
|
|
this._syncAuto("from");
|
2016-06-01 02:18:31 +00:00
|
|
|
return this.sshKeyArray;
|
2016-06-01 01:57:17 +00:00
|
|
|
},
|
|
|
|
enumerable: true,
|
|
|
|
configurable: true
|
|
|
|
});
|
2016-06-24 00:49:55 +00:00
|
|
|
;
|
|
|
|
//FS methods
|
|
|
|
/**
|
|
|
|
* write SshInstance to disk
|
|
|
|
*/
|
|
|
|
SshInstance.prototype.writeToDisk = function () {
|
|
|
|
this._sync("to");
|
|
|
|
};
|
|
|
|
/**
|
|
|
|
* read ab SshInstance from disk
|
|
|
|
*/
|
|
|
|
SshInstance.prototype.readFromDisk = function () {
|
|
|
|
this._sync("from");
|
|
|
|
};
|
|
|
|
/**
|
|
|
|
* method to invoke SshInstance _sync automatically when sshSync is true
|
|
|
|
*/
|
|
|
|
SshInstance.prototype._syncAuto = function (directionArg) {
|
|
|
|
if (this._sshSync)
|
|
|
|
this._sync(directionArg);
|
|
|
|
};
|
|
|
|
/**
|
|
|
|
* private method to sync SshInstance
|
|
|
|
*/
|
|
|
|
SshInstance.prototype._sync = function (directionArg) {
|
|
|
|
if (directionArg == "from") {
|
|
|
|
this.sshDir.readFromDir(); // call sync method of sshDir class;
|
2016-06-01 01:57:17 +00:00
|
|
|
}
|
2016-06-24 00:49:55 +00:00
|
|
|
else if (directionArg == "to") {
|
|
|
|
this.sshDir.writeToDir();
|
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
|
|
|
}
|
|
|
|
};
|
|
|
|
;
|
|
|
|
return SshInstance;
|
|
|
|
}());
|
|
|
|
exports.SshInstance = SshInstance;
|
|
|
|
|
2016-06-24 00:49:55 +00:00
|
|
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLmNsYXNzZXMuc3NoaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQ1AsQ0FBQyxDQURzQjtBQUl2Qix3Q0FBcUIsMkJBQTJCLENBQUMsQ0FBQTtBQUlqRDtJQUtJLHFCQUFZLFVBQW1EO1FBQW5ELDBCQUFtRCxHQUFuRCxlQUFtRDtRQUMzRCxVQUFVLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxnQ0FBTSxDQUFDLElBQUksRUFBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekQsQ0FBQzs7SUFFRCxrQkFBa0I7SUFDbEIsNEJBQU0sR0FBTixVQUFPLFNBQWdCO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDOztJQUNELCtCQUFTLEdBQVQsVUFBVSxTQUFnQjtRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQUMsVUFBaUI7WUFDMUQsTUFBTSxDQUFDLENBQUMsU0FBUyxJQUFJLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDOztJQUNELGdDQUFVLEdBQVYsVUFBVyxZQUFtQixFQUFDLFlBQW1CO1FBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQzs7SUFFRCxFQUFFO0lBQ0YsNEJBQU0sR0FBTixVQUFPLE9BQWM7UUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFTLE1BQU07WUFDdkQsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQztZQUN6QixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDckIsQ0FBQztJQUNMLENBQUM7O0lBQ0Qsc0JBQUksZ0NBQU87YUFBWDtZQUNJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDNUIsQ0FBQzs7O09BQUE7O0lBRUQsWUFBWTtJQUVaOztPQUVHO0lBQ0gsaUNBQVcsR0FBWDtRQUNJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0NBQVksR0FBWjtRQUNJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssK0JBQVMsR0FBakIsVUFBa0IsWUFBWTtRQUMxQixFQUFFLENBQUEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDSywyQkFBSyxHQUFiLFVBQWMsWUFBbUI7UUFDN0IsRUFBRSxDQUFBLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxDQUFBLENBQUM7WUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLG9DQUFvQztRQUNuRSxDQUFDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQzNFLENBQUM7SUFDTCxDQUFDOztJQUNMLGtCQUFDO0FBQUQsQ0FyRkEsQUFxRkMsSUFBQTtBQXJGWSxtQkFBVyxjQXFGdkIsQ0FBQSIsImZpbGUiOiJzbWFydHNzaC5jbGFzc2VzLnNzaGluc3RhbmNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIlxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9zbWFydHNzaC5wbHVnaW5zXCI7XG5pbXBvcnQgKiBhcyBoZWxwZXJzIGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuaGVscGVyc1wiO1xuXG5pbXBvcnQge1NzaERpcn0gZnJvbSBcIi4vc21hcnRzc2guY2xhc3Nlcy5zc2hkaXJcIjtcbmltcG9ydCB7U3NoQ29uZmlnfSBmcm9tIFwiLi9zbWFydHNzaC5jbGFzc2VzLnNzaGNvbmZpZ1wiO1xuaW1wb3J0IHtTc2hLZXl9IGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuc3Noa2V5XCI7XG5cbmV4cG9ydCBjbGFzcyBTc2hJbnN0YW5jZSB7XG4gICAgcHJpdmF0ZSBfc3NoQ29uZmlnOlNzaENvbmZpZzsgLy8gc3NoQ29uZmlnIChlLmcuIHJlcHJlc2VudHMgfi8uc3NoL2NvbmZpZylcbiAgICBzc2hEaXI6U3NoRGlyOyAvLyBwb2ludHMgdG8gc3NoRGlyIGNsYXNzIGluc3RhbmNlLlxuICAgIHByb3RlY3RlZCBzc2hLZXlBcnJheTpTc2hLZXlbXTsgLy9ob2xkcyBhbGwgc3NoIGtleXNcbiAgICBwcml2YXRlIF9zc2hTeW5jOmJvb2xlYW47IC8vIGlmIHNldCB0byB0cnVlLCB0aGUgc3NoIGRpciB3aWxsIGJlIGtlcHQgaW4gc3luYyBhdXRvbWF0aWNhbGx5XG4gICAgY29uc3RydWN0b3Iob3B0aW9u
|