Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
5091625953 | |||
f74b3a51b0 | |||
062f3ad060 | |||
ecd0fd8fad | |||
742bf694e4 | |||
38165f11db | |||
ef2b31b4b2 | |||
5b1f800067 | |||
6339a3ed9b | |||
bf27aaf167 | |||
9bc3aea59c | |||
f5ff302d4d |
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,3 +5,4 @@ docs/
|
||||
ts/typings/
|
||||
ts/*.js
|
||||
ts/*.js.map
|
||||
test/temp/
|
5
Dockerfile
Normal file
5
Dockerfile
Normal file
@ -0,0 +1,5 @@
|
||||
FROM hosttoday/ht-docker-node:npmts
|
||||
COPY ./ /node-app
|
||||
WORKDIR /node-app
|
||||
RUN npm install
|
||||
RUN npmts
|
7
dist/smartssh.classes.sshconfig.d.ts
vendored
7
dist/smartssh.classes.sshconfig.d.ts
vendored
@ -4,12 +4,13 @@ export declare class SshConfig {
|
||||
sshKeyArray: SshKey[];
|
||||
constructor(sshKeyArrayArg: SshKey[]);
|
||||
/**
|
||||
* the current config
|
||||
* stores a config file
|
||||
*/
|
||||
config: configObject[];
|
||||
store(dirPathArg: string): any;
|
||||
read(dirPathArg: any): any;
|
||||
}
|
||||
export interface configObject {
|
||||
host: string;
|
||||
configString: string;
|
||||
authorized: boolean;
|
||||
sshKey: SshKey;
|
||||
}
|
||||
|
48
dist/smartssh.classes.sshconfig.js
vendored
48
dist/smartssh.classes.sshconfig.js
vendored
@ -1,24 +1,48 @@
|
||||
"use strict";
|
||||
require("typings-global");
|
||||
var plugins = require("./smartssh.plugins");
|
||||
var SshConfig = (function () {
|
||||
function SshConfig(sshKeyArrayArg) {
|
||||
this.sshKeyArray = sshKeyArrayArg;
|
||||
}
|
||||
Object.defineProperty(SshConfig.prototype, "config", {
|
||||
/**
|
||||
* the current config
|
||||
*/
|
||||
get: function () {
|
||||
var configArray;
|
||||
return configArray;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
/**
|
||||
* stores a config file
|
||||
*/
|
||||
SshConfig.prototype.store = function (dirPathArg) {
|
||||
var done = plugins.q.defer();
|
||||
var configArray = [];
|
||||
var configString;
|
||||
for (var key in this.sshKeyArray) {
|
||||
var sshKey = this.sshKeyArray[key];
|
||||
if (sshKey.host) {
|
||||
configString = "Host " + sshKey.host + "\n" +
|
||||
" HostName " + sshKey.host + "\n" +
|
||||
" IdentityFile ~/.ssh/" + sshKey.host + "\n" +
|
||||
" StrictHostKeyChecking no" + "\n";
|
||||
}
|
||||
configArray.push({
|
||||
configString: configString,
|
||||
authorized: sshKey.authorized,
|
||||
sshKey: sshKey
|
||||
});
|
||||
}
|
||||
var configFile = "";
|
||||
for (var key in configArray) {
|
||||
configFile = configFile + configArray[key].configString + "\n";
|
||||
}
|
||||
;
|
||||
plugins.smartfile.memory.toFsSync(configFile, plugins.path.join(dirPathArg, "config"));
|
||||
return done.promise;
|
||||
};
|
||||
SshConfig.prototype.read = function (dirPathArg) {
|
||||
var done = plugins.q.defer();
|
||||
var configArray;
|
||||
return done.promise;
|
||||
};
|
||||
return SshConfig;
|
||||
}());
|
||||
exports.SshConfig = SshConfig;
|
||||
;
|
||||
;
|
||||
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLmNsYXNzZXMuc3NoY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFLeEI7SUFFSSxtQkFBWSxjQUF1QjtRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQztJQUN0QyxDQUFDO0lBS0Qsc0JBQUksNkJBQU07UUFIVjs7V0FFRzthQUNIO1lBQ0ksSUFBSSxXQUEwQixDQUFDO1lBQy9CLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdkIsQ0FBQzs7O09BQUE7SUFDTCxnQkFBQztBQUFELENBYkEsQUFhQyxJQUFBO0FBYlksaUJBQVMsWUFhckIsQ0FBQTtBQUFBLENBQUM7QUFNRCxDQUFDIiwiZmlsZSI6InNtYXJ0c3NoLmNsYXNzZXMuc3NoY29uZmlnLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vc21hcnRzc2gucGx1Z2luc1wiO1xuaW1wb3J0ICogYXMgaGVscGVycyBmcm9tIFwiLi9zbWFydHNzaC5jbGFzc2VzLmhlbHBlcnNcIjtcbmltcG9ydCB7U3NoS2V5fSBmcm9tIFwiLi9zbWFydHNzaC5jbGFzc2VzLnNzaGtleVwiXG5cbmV4cG9ydCBjbGFzcyBTc2hDb25maWcge1xuICAgIHNzaEtleUFycmF5OlNzaEtleVtdO1xuICAgIGNvbnN0cnVjdG9yKHNzaEtleUFycmF5QXJnOlNzaEtleVtdKXtcbiAgICAgICAgdGhpcy5zc2hLZXlBcnJheSA9IHNzaEtleUFycmF5QXJnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHRoZSBjdXJyZW50IGNvbmZpZ1xuICAgICAqL1xuICAgIGdldCBjb25maWcoKXtcbiAgICAgICAgbGV0IGNvbmZpZ0FycmF5OmNvbmZpZ09iamVjdFtdO1xuICAgICAgICByZXR1cm4gY29uZmlnQXJyYXk7XG4gICAgfVxufTtcblxuZXhwb3J0IGludGVyZmFjZSBjb25maWdPYmplY3Qge1xuICAgIGhvc3Q6c3RyaW5nO1xuICAgIGF1dGhvcml6ZWQ6Ym9vbGVhbjtcbiAgICBzc2hLZXk6U3NoS2V5O1xufTtcblxuIl19
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLmNsYXNzZXMuc3NoY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0sb0JBQW9CLENBQUMsQ0FBQTtBQUk5QztJQUVJLG1CQUFZLGNBQXVCO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILHlCQUFLLEdBQUwsVUFBTSxVQUFpQjtRQUNuQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksV0FBVyxHQUFrQixFQUFFLENBQUM7UUFDcEMsSUFBSSxZQUFZLENBQUM7UUFDakIsR0FBRyxDQUFBLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBLENBQUM7WUFDN0IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxFQUFFLENBQUEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQztnQkFDWixZQUFZLEdBQUcsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSTtvQkFDeEIsYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSTtvQkFDbEMsd0JBQXdCLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJO29CQUM3Qyw0QkFBNEIsR0FBRyxJQUFJLENBQUE7WUFDMUQsQ0FBQztZQUNELFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ2IsWUFBWSxFQUFDLFlBQVk7Z0JBQ3pCLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtnQkFDN0IsTUFBTSxFQUFFLE1BQU07YUFDakIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELElBQUksVUFBVSxHQUFVLEVBQUUsQ0FBQztRQUMzQixHQUFHLENBQUEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQ3hCLFVBQVUsR0FBRyxVQUFVLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDbkUsQ0FBQztRQUFBLENBQUM7UUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFDRCx3QkFBSSxHQUFKLFVBQUssVUFBVTtRQUNYLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsSUFBSSxXQUEwQixDQUFDO1FBRS9CLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFDTCxnQkFBQztBQUFELENBeENBLEFBd0NDLElBQUE7QUF4Q1ksaUJBQVMsWUF3Q3JCLENBQUE7QUFBQSxDQUFDO0FBTUQsQ0FBQyIsImZpbGUiOiJzbWFydHNzaC5jbGFzc2VzLnNzaGNvbmZpZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL3NtYXJ0c3NoLnBsdWdpbnNcIjtcbmltcG9ydCAqIGFzIGhlbHBlcnMgZnJvbSBcIi4vc21hcnRzc2guY2xhc3Nlcy5oZWxwZXJzXCI7XG5pbXBvcnQge1NzaEtleX0gZnJvbSBcIi4vc21hcnRzc2guY2xhc3Nlcy5zc2hrZXlcIlxuXG5leHBvcnQgY2xhc3MgU3NoQ29uZmlnIHtcbiAgICBzc2hLZXlBcnJheTpTc2hLZXlbXTtcbiAgICBjb25zdHJ1Y3Rvcihzc2hLZXlBcnJheUFyZzpTc2hLZXlbXSl7XG4gICAgICAgIHRoaXMuc3NoS2V5QXJyYXkgPSBzc2hLZXlBcnJheUFyZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzdG9yZXMgYSBjb25maWcgZmlsZVxuICAgICAqL1xuICAgIHN0b3JlKGRpclBhdGhBcmc6c3RyaW5nKXtcbiAgICAgICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcbiAgICAgICAgbGV0IGNvbmZpZ0FycmF5OmNvbmZpZ09iamVjdFtdID0gW107XG4gICAgICAgIGxldCBjb25maWdTdHJpbmc7XG4gICAgICAgIGZvcihsZXQga2V5IGluIHRoaXMuc3NoS2V5QXJyYXkpe1xuICAgICAgICAgICAgbGV0IHNzaEtleSA9IHRoaXMuc3NoS2V5QXJyYXlba2V5XTtcbiAgICAgICAgICAgIGlmKHNzaEtleS5ob3N0KXtcbiAgICAgICAgICAgICAgICBjb25maWdTdHJpbmcgPSBcIkhvc3QgXCIgKyBzc2hLZXkuaG9zdCArIFwiXFxuXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiAgSG9zdE5hbWUgXCIgKyBzc2hLZXkuaG9zdCArIFwiXFxuXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiAgSWRlbnRpdHlGaWxlIH4vLnNzaC9cIiArIHNzaEtleS5ob3N0ICsgXCJcXG5cIiArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiICBTdHJpY3RIb3N0S2V5Q2hlY2tpbmcgbm9cIiArIFwiXFxuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbmZpZ0FycmF5LnB1c2goe1xuICAgICAgICAgICAgICAgIGNvbmZpZ1N0cmluZzpjb25maWdTdHJpbmcsXG4gICAgICAgICAgICAgICAgYXV0aG9yaXplZDogc3NoS2V5LmF1dGhvcml6ZWQsXG4gICAgICAgICAgICAgICAgc3NoS2V5OiBzc2hLZXlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGxldCBjb25maWdGaWxlOnN0cmluZyA9IFwiXCI7XG4gICAgICAgIGZvcihsZXQga2V5IGluIGNvbmZpZ0FycmF5KXtcbiAgICAgICAgICAgIGNvbmZpZ0ZpbGUgPSBjb25maWdGaWxlICsgY29uZmlnQXJyYXlba2V5XS5jb25maWdTdHJpbmcgKyBcIlxcblwiO1xuICAgICAgICB9O1xuICAgICAgICBwbHVnaW5zLnNtYXJ0ZmlsZS5tZW1vcnkudG9Gc1N5bmMoY29uZmlnRmlsZSxwbHVnaW5zLnBhdGguam9pbihkaXJQYXRoQXJnLFwiY29uZmlnXCIpKTtcbiAgICAgICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcbiAgICB9XG4gICAgcmVhZChkaXJQYXRoQXJnKXtcbiAgICAgICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcbiAgICAgICAgbGV0IGNvbmZpZ0FycmF5OmNvbmZpZ09iamVjdFtdO1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcbiAgICB9XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIGNvbmZpZ09iamVjdCB7XG4gICAgY29uZmlnU3RyaW5nOnN0cmluZztcbiAgICBhdXRob3JpemVkOmJvb2xlYW47XG4gICAgc3NoS2V5OlNzaEtleTtcbn07XG5cbiJdfQ==
|
||||
|
9
dist/smartssh.classes.sshdir.d.ts
vendored
9
dist/smartssh.classes.sshdir.d.ts
vendored
@ -1,10 +1,13 @@
|
||||
import "typings-global";
|
||||
import { SshKey } from "./smartssh.classes.sshkey";
|
||||
import { SshConfig } from "./smartssh.classes.sshconfig";
|
||||
export declare class SshDir {
|
||||
path: string;
|
||||
private sshKeyArray;
|
||||
constructor(sshKeyArray: SshKey[], sshDirPathArg?: string);
|
||||
private _path;
|
||||
private _sshKeyArray;
|
||||
private _sshConfig;
|
||||
constructor(sshKeyArray: SshKey[], sshConfig: SshConfig, sshDirPathArg?: string);
|
||||
writeToDir(): void;
|
||||
readFromDir(): void;
|
||||
updateDirPath(dirPathArg: string): void;
|
||||
getKeys(): SshKey[];
|
||||
}
|
||||
|
22
dist/smartssh.classes.sshdir.js
vendored
22
dist/smartssh.classes.sshdir.js
vendored
@ -3,30 +3,36 @@ require("typings-global");
|
||||
var plugins = require("./smartssh.plugins");
|
||||
var helpers = require("./smartssh.classes.helpers");
|
||||
var SshDir = (function () {
|
||||
function SshDir(sshKeyArray, sshDirPathArg) {
|
||||
this.sshKeyArray = sshKeyArray;
|
||||
function SshDir(sshKeyArray, sshConfig, sshDirPathArg) {
|
||||
this._sshKeyArray = sshKeyArray;
|
||||
this._sshConfig = sshConfig;
|
||||
if (sshDirPathArg) {
|
||||
this.path = sshDirPathArg;
|
||||
this._path = sshDirPathArg;
|
||||
}
|
||||
else {
|
||||
this.path = plugins.path.join(plugins.smartpath.get.home(), ".ssh/");
|
||||
this._path = plugins.path.join(plugins.smartpath.get.home(), ".ssh/");
|
||||
}
|
||||
;
|
||||
}
|
||||
SshDir.prototype.writeToDir = function () {
|
||||
var _this = this;
|
||||
this.sshKeyArray.forEach(function (sshKeyArg) {
|
||||
sshKeyArg.store(_this.path);
|
||||
this._sshKeyArray.forEach(function (sshKeyArg) {
|
||||
sshKeyArg.store(_this._path);
|
||||
});
|
||||
this._sshConfig.store(this._path);
|
||||
};
|
||||
;
|
||||
SshDir.prototype.readFromDir = function () {
|
||||
};
|
||||
SshDir.prototype.updateDirPath = function (dirPathArg) {
|
||||
this._path = dirPathArg;
|
||||
};
|
||||
;
|
||||
SshDir.prototype.getKeys = function () {
|
||||
return helpers.sshKeyArrayFromDir(this.path);
|
||||
return helpers.sshKeyArrayFromDir(this._path);
|
||||
};
|
||||
return SshDir;
|
||||
}());
|
||||
exports.SshDir = SshDir;
|
||||
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLmNsYXNzZXMuc3NoZGlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0sb0JBQW9CLENBQUMsQ0FBQTtBQUM5QyxJQUFZLE9BQU8sV0FBTSw0QkFBNEIsQ0FBQyxDQUFBO0FBSXREO0lBR0ksZ0JBQVksV0FBb0IsRUFBQyxhQUFxQjtRQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixFQUFFLENBQUEsQ0FBQyxhQUFhLENBQUMsQ0FBQSxDQUFDO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUM7UUFDOUIsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBQUEsQ0FBQztJQUNOLENBQUM7SUFDRCwyQkFBVSxHQUFWO1FBQUEsaUJBS0M7UUFKRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFDLFNBQVM7WUFDL0IsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztJQUNELDRCQUFXLEdBQVg7SUFFQSxDQUFDO0lBQ0Qsd0JBQU8sR0FBUDtRQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDTCxhQUFDO0FBQUQsQ0F2QkEsQUF1QkMsSUFBQTtBQXZCWSxjQUFNLFNBdUJsQixDQUFBIiwiZmlsZSI6InNtYXJ0c3NoLmNsYXNzZXMuc3NoZGlyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vc21hcnRzc2gucGx1Z2luc1wiO1xuaW1wb3J0ICogYXMgaGVscGVycyBmcm9tIFwiLi9zbWFydHNzaC5jbGFzc2VzLmhlbHBlcnNcIjtcbmltcG9ydCB7U3NoSW5zdGFuY2V9IGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuc3NoaW5zdGFuY2VcIjtcbmltcG9ydCB7U3NoS2V5fSBmcm9tIFwiLi9zbWFydHNzaC5jbGFzc2VzLnNzaGtleVwiO1xuaW1wb3J0IHtTc2hDb25maWd9IGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuc3NoY29uZmlnXCI7XG5leHBvcnQgY2xhc3MgU3NoRGlyIHsgLy8gc3NoRGlyIGNsYXNzIC0+IE5PVCBFWFBPUlRFRCwgT05MWSBGT1IgSU5URVJOQUwgVVNFXG4gICAgcGF0aDpzdHJpbmc7IC8vIHRoZSBwYXRoIG9mIHRoZSBzc2ggZGlyZWN0b3J5XG4gICAgcHJpdmF0ZSBzc2hLZXlBcnJheTpTc2hLZXlbXTtcbiAgICBjb25zdHJ1Y3Rvcihzc2hLZXlBcnJheTpTc2hLZXlbXSxzc2hEaXJQYXRoQXJnPzpzdHJpbmcpe1xuICAgICAgICB0aGlzLnNzaEtleUFycmF5ID0gc3NoS2V5QXJyYXk7XG4gICAgICAgIGlmKHNzaERpclBhdGhBcmcpe1xuICAgICAgICAgICAgdGhpcy5wYXRoID0gc3NoRGlyUGF0aEFyZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGF0aCA9IHBsdWdpbnMucGF0aC5qb2luKHBsdWdpbnMuc21hcnRwYXRoLmdldC5ob21lKCksXCIuc3NoL1wiKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgd3JpdGVUb0RpcigpeyAvLyBzeW5jcyBzc2hJbnN0YW5jZSB0byBkaXJlY3RvcnlcbiAgICAgICAgdGhpcy5zc2hLZXlBcnJheS5mb3JFYWNoKChzc2hLZXlBcmcpID0+IHtcbiAgICAgICAgICAgIHNzaEtleUFyZy5zdG9yZSh0aGlzLnBhdGgpO1xuICAgICAgICAgICAgXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmVhZEZyb21EaXIoKXsgLy8gc3luY3Mgc3NoSW5zdGFuY2UgZnJvbSBkaXJlY3RvcnlcbiAgICAgICAgXG4gICAgfVxuICAgIGdldEtleXMoKXtcbiAgICAgICAgcmV0dXJuIGhlbHBlcnMuc3NoS2V5QXJyYXlGcm9tRGlyKHRoaXMucGF0aCk7XG4gICAgfVxufSJdfQ==
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLmNsYXNzZXMuc3NoZGlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0sb0JBQW9CLENBQUMsQ0FBQTtBQUM5QyxJQUFZLE9BQU8sV0FBTSw0QkFBNEIsQ0FBQyxDQUFBO0FBSXREO0lBSUksZ0JBQVksV0FBb0IsRUFBQyxTQUFtQixFQUFDLGFBQXFCO1FBQ3RFLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLEVBQUUsQ0FBQSxDQUFDLGFBQWEsQ0FBQyxDQUFBLENBQUM7WUFDZCxJQUFJLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQztRQUMvQixDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFBQSxDQUFDO0lBQ04sQ0FBQztJQUNELDJCQUFVLEdBQVY7UUFBQSxpQkFLQztRQUpHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQUMsU0FBUztZQUNoQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDOztJQUNELDRCQUFXLEdBQVg7SUFFQSxDQUFDO0lBQ0QsOEJBQWEsR0FBYixVQUFjLFVBQWlCO1FBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO0lBQzVCLENBQUM7O0lBQ0Qsd0JBQU8sR0FBUDtRQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDTCxhQUFDO0FBQUQsQ0E1QkEsQUE0QkMsSUFBQTtBQTVCWSxjQUFNLFNBNEJsQixDQUFBIiwiZmlsZSI6InNtYXJ0c3NoLmNsYXNzZXMuc3NoZGlyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vc21hcnRzc2gucGx1Z2luc1wiO1xuaW1wb3J0ICogYXMgaGVscGVycyBmcm9tIFwiLi9zbWFydHNzaC5jbGFzc2VzLmhlbHBlcnNcIjtcbmltcG9ydCB7U3NoSW5zdGFuY2V9IGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuc3NoaW5zdGFuY2VcIjtcbmltcG9ydCB7U3NoS2V5fSBmcm9tIFwiLi9zbWFydHNzaC5jbGFzc2VzLnNzaGtleVwiO1xuaW1wb3J0IHtTc2hDb25maWd9IGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuc3NoY29uZmlnXCI7XG5leHBvcnQgY2xhc3MgU3NoRGlyIHsgLy8gc3NoRGlyIGNsYXNzIC0+IE5PVCBFWFBPUlRFRCwgT05MWSBGT1IgSU5URVJOQUwgVVNFXG4gICAgcHJpdmF0ZSBfcGF0aDpzdHJpbmc7IC8vIHRoZSBwYXRoIG9mIHRoZSBzc2ggZGlyZWN0b3J5XG4gICAgcHJpdmF0ZSBfc3NoS2V5QXJyYXk6U3NoS2V5W107XG4gICAgcHJpdmF0ZSBfc3NoQ29uZmlnOlNzaENvbmZpZztcbiAgICBjb25zdHJ1Y3Rvcihzc2hLZXlBcnJheTpTc2hLZXlbXSxzc2hDb25maWc6U3NoQ29uZmlnLHNzaERpclBhdGhBcmc/OnN0cmluZyl7XG4gICAgICAgIHRoaXMuX3NzaEtleUFycmF5ID0gc3NoS2V5QXJyYXk7XG4gICAgICAgIHRoaXMuX3NzaENvbmZpZyA9IHNzaENvbmZpZztcbiAgICAgICAgaWYoc3NoRGlyUGF0aEFyZyl7XG4gICAgICAgICAgICB0aGlzLl9wYXRoID0gc3NoRGlyUGF0aEFyZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3BhdGggPSBwbHVnaW5zLnBhdGguam9pbihwbHVnaW5zLnNtYXJ0cGF0aC5nZXQuaG9tZSgpLFwiLnNzaC9cIik7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHdyaXRlVG9EaXIoKXsgLy8gc3luY3Mgc3NoSW5zdGFuY2UgdG8gZGlyZWN0b3J5XG4gICAgICAgIHRoaXMuX3NzaEtleUFycmF5LmZvckVhY2goKHNzaEtleUFyZykgPT4ge1xuICAgICAgICAgICAgc3NoS2V5QXJnLnN0b3JlKHRoaXMuX3BhdGgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fc3NoQ29uZmlnLnN0b3JlKHRoaXMuX3BhdGgpO1xuICAgIH07XG4gICAgcmVhZEZyb21EaXIoKXsgLy8gc3luY3Mgc3NoSW5zdGFuY2UgZnJvbSBkaXJlY3RvcnlcbiAgICAgICAgXG4gICAgfVxuICAgIHVwZGF0ZURpclBhdGgoZGlyUGF0aEFyZzpzdHJpbmcpe1xuICAgICAgICB0aGlzLl9wYXRoID0gZGlyUGF0aEFyZztcbiAgICB9O1xuICAgIGdldEtleXMoKXtcbiAgICAgICAgcmV0dXJuIGhlbHBlcnMuc3NoS2V5QXJyYXlGcm9tRGlyKHRoaXMuX3BhdGgpO1xuICAgIH1cbn0iXX0=
|
||||
|
4
dist/smartssh.classes.sshinstance.js
vendored
4
dist/smartssh.classes.sshinstance.js
vendored
File diff suppressed because one or more lines are too long
3
dist/smartssh.classes.sshkey.d.ts
vendored
3
dist/smartssh.classes.sshkey.d.ts
vendored
@ -15,7 +15,8 @@ export declare class SshKey {
|
||||
privKeyBase64: string;
|
||||
pubKey: string;
|
||||
pubKeyBase64: string;
|
||||
authorized: boolean;
|
||||
type: any;
|
||||
read(filePathArg: any): void;
|
||||
store(filePathArg?: string): void;
|
||||
store(dirPathArg: string): void;
|
||||
}
|
||||
|
35
dist/smartssh.classes.sshkey.js
vendored
35
dist/smartssh.classes.sshkey.js
vendored
File diff suppressed because one or more lines are too long
2
dist/smartssh.plugins.d.ts
vendored
2
dist/smartssh.plugins.d.ts
vendored
@ -4,5 +4,7 @@ export declare let base64: any;
|
||||
export declare let fs: any;
|
||||
export declare let minimatch: any;
|
||||
export import path = require("path");
|
||||
export declare let q: any;
|
||||
export declare let shelljs: any;
|
||||
export import smartfile = require("smartfile");
|
||||
export import smartpath = require("smartpath");
|
||||
|
4
dist/smartssh.plugins.js
vendored
4
dist/smartssh.plugins.js
vendored
@ -5,7 +5,9 @@ exports.base64 = require("js-base64").Base64;
|
||||
exports.fs = require("fs-extra");
|
||||
exports.minimatch = require("minimatch");
|
||||
exports.path = require("path");
|
||||
exports.q = require("q");
|
||||
exports.shelljs = require("shelljs");
|
||||
exports.smartfile = require("smartfile");
|
||||
exports.smartpath = require("smartpath");
|
||||
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQ1AsQ0FBQyxDQURzQjtBQUNULGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDcEMsY0FBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDckMsVUFBRSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN6QixpQkFBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM5QixZQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDdkIsaUJBQVMsV0FBVyxXQUFXLENBQUMsQ0FBQztBQUNqQyxpQkFBUyxXQUFXLFdBQVcsQ0FBQyxDQUFDIiwiZmlsZSI6InNtYXJ0c3NoLnBsdWdpbnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiXG5leHBvcnQgaW1wb3J0IGJlYXV0eWxvZyA9IHJlcXVpcmUoXCJiZWF1dHlsb2dcIik7XG5leHBvcnQgbGV0IGJhc2U2NCA9IHJlcXVpcmUoXCJqcy1iYXNlNjRcIikuQmFzZTY0O1xuZXhwb3J0IGxldCBmcyA9IHJlcXVpcmUoXCJmcy1leHRyYVwiKTtcbmV4cG9ydCBsZXQgbWluaW1hdGNoID0gcmVxdWlyZShcIm1pbmltYXRjaFwiKTtcbmV4cG9ydCBpbXBvcnQgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xuZXhwb3J0IGltcG9ydCBzbWFydGZpbGUgPSByZXF1aXJlKFwic21hcnRmaWxlXCIpO1xuZXhwb3J0IGltcG9ydCBzbWFydHBhdGggPSByZXF1aXJlKFwic21hcnRwYXRoXCIpOyJdfQ==
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQ1AsQ0FBQyxDQURzQjtBQUNULGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDcEMsY0FBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDckMsVUFBRSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN6QixpQkFBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM5QixZQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDMUIsU0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQixlQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzFCLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDakMsaUJBQVMsV0FBVyxXQUFXLENBQUMsQ0FBQyIsImZpbGUiOiJzbWFydHNzaC5wbHVnaW5zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIlxuZXhwb3J0IGltcG9ydCBiZWF1dHlsb2cgPSByZXF1aXJlKFwiYmVhdXR5bG9nXCIpO1xuZXhwb3J0IGxldCBiYXNlNjQgPSByZXF1aXJlKFwianMtYmFzZTY0XCIpLkJhc2U2NDtcbmV4cG9ydCBsZXQgZnMgPSByZXF1aXJlKFwiZnMtZXh0cmFcIik7XG5leHBvcnQgbGV0IG1pbmltYXRjaCA9IHJlcXVpcmUoXCJtaW5pbWF0Y2hcIik7XG5leHBvcnQgaW1wb3J0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcbmV4cG9ydCBsZXQgcSA9IHJlcXVpcmUoXCJxXCIpO1xuZXhwb3J0IGxldCBzaGVsbGpzID0gcmVxdWlyZShcInNoZWxsanNcIik7XG5leHBvcnQgaW1wb3J0IHNtYXJ0ZmlsZSA9IHJlcXVpcmUoXCJzbWFydGZpbGVcIik7XG5leHBvcnQgaW1wb3J0IHNtYXJ0cGF0aCA9IHJlcXVpcmUoXCJzbWFydHBhdGhcIik7Il19
|
||||
|
@ -1,3 +1,4 @@
|
||||
{
|
||||
"mode":"default"
|
||||
"mode":"default",
|
||||
"coverageTreshold":50
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "smartssh",
|
||||
"version": "1.1.0",
|
||||
"version": "1.1.5",
|
||||
"description": "setups SSH quickly and in a painless manner",
|
||||
"main": "dist/index.js",
|
||||
"typings": "dist/index.d.ts",
|
||||
@ -27,6 +27,8 @@
|
||||
"fs-extra": "^0.30.0",
|
||||
"js-base64": "^2.1.9",
|
||||
"minimatch": "^3.0.2",
|
||||
"q": "^1.4.1",
|
||||
"shelljs": "^0.7.0",
|
||||
"smartfile": "^4.0.5",
|
||||
"smartpath": "^3.2.2",
|
||||
"typings-global": "^1.0.3",
|
||||
|
13
test/test.js
13
test/test.js
File diff suppressed because one or more lines are too long
13
test/test.ts
13
test/test.ts
@ -1,6 +1,7 @@
|
||||
import "typings-test"
|
||||
import "should";
|
||||
import smartssh = require("../dist/index");
|
||||
import path = require("path");
|
||||
describe("smartssh",function(){
|
||||
let testSshInstance:smartssh.SshInstance;
|
||||
let testSshKey:smartssh.SshKey;
|
||||
@ -24,11 +25,16 @@ describe("smartssh",function(){
|
||||
});
|
||||
it(".publicKeyBase64 should be public key base 64 encoded",function(){
|
||||
testSshKey.pubKeyBase64;
|
||||
})
|
||||
});
|
||||
it(".store() should store the file to disk",function(){
|
||||
testSshKey.store(path.join(process.cwd(),"test/temp"));
|
||||
});
|
||||
});
|
||||
describe(".SshInstance",function(){
|
||||
it("'new' keyword should create a new SshInstance object from class",function(){
|
||||
testSshInstance = new smartssh.SshInstance();
|
||||
testSshInstance = new smartssh.SshInstance({
|
||||
sshDirPath: path.join(process.cwd(),"test/temp/")
|
||||
});
|
||||
testSshInstance.should.be.instanceof(smartssh.SshInstance);
|
||||
});
|
||||
it(".addKey() should accept a new SshKey object",function(){
|
||||
@ -61,6 +67,9 @@ describe("smartssh",function(){
|
||||
it(".removeKey() should remove a key",function(){
|
||||
testSshInstance.removeKey(testSshInstance.getKey("bitbucket.org"));
|
||||
testSshInstance.sshKeys[1].host.should.equal("github.com");
|
||||
});
|
||||
it("it should store to disk",function(){
|
||||
testSshInstance.writeToDisk();
|
||||
})
|
||||
});
|
||||
})
|
@ -10,16 +10,43 @@ export class SshConfig {
|
||||
}
|
||||
|
||||
/**
|
||||
* the current config
|
||||
* stores a config file
|
||||
*/
|
||||
get config(){
|
||||
store(dirPathArg:string){
|
||||
let done = plugins.q.defer();
|
||||
let configArray:configObject[] = [];
|
||||
let configString;
|
||||
for(let key in this.sshKeyArray){
|
||||
let sshKey = this.sshKeyArray[key];
|
||||
if(sshKey.host){
|
||||
configString = "Host " + sshKey.host + "\n" +
|
||||
" HostName " + sshKey.host + "\n" +
|
||||
" IdentityFile ~/.ssh/" + sshKey.host + "\n" +
|
||||
" StrictHostKeyChecking no" + "\n"
|
||||
}
|
||||
configArray.push({
|
||||
configString:configString,
|
||||
authorized: sshKey.authorized,
|
||||
sshKey: sshKey
|
||||
});
|
||||
}
|
||||
let configFile:string = "";
|
||||
for(let key in configArray){
|
||||
configFile = configFile + configArray[key].configString + "\n";
|
||||
};
|
||||
plugins.smartfile.memory.toFsSync(configFile,plugins.path.join(dirPathArg,"config"));
|
||||
return done.promise;
|
||||
}
|
||||
read(dirPathArg){
|
||||
let done = plugins.q.defer();
|
||||
let configArray:configObject[];
|
||||
return configArray;
|
||||
|
||||
return done.promise;
|
||||
}
|
||||
};
|
||||
|
||||
export interface configObject {
|
||||
host:string;
|
||||
configString:string;
|
||||
authorized:boolean;
|
||||
sshKey:SshKey;
|
||||
};
|
||||
|
@ -5,26 +5,31 @@ import {SshInstance} from "./smartssh.classes.sshinstance";
|
||||
import {SshKey} from "./smartssh.classes.sshkey";
|
||||
import {SshConfig} from "./smartssh.classes.sshconfig";
|
||||
export class SshDir { // sshDir class -> NOT EXPORTED, ONLY FOR INTERNAL USE
|
||||
path:string; // the path of the ssh directory
|
||||
private sshKeyArray:SshKey[];
|
||||
constructor(sshKeyArray:SshKey[],sshDirPathArg?:string){
|
||||
this.sshKeyArray = sshKeyArray;
|
||||
private _path:string; // the path of the ssh directory
|
||||
private _sshKeyArray:SshKey[];
|
||||
private _sshConfig:SshConfig;
|
||||
constructor(sshKeyArray:SshKey[],sshConfig:SshConfig,sshDirPathArg?:string){
|
||||
this._sshKeyArray = sshKeyArray;
|
||||
this._sshConfig = sshConfig;
|
||||
if(sshDirPathArg){
|
||||
this.path = sshDirPathArg;
|
||||
this._path = sshDirPathArg;
|
||||
} else {
|
||||
this.path = plugins.path.join(plugins.smartpath.get.home(),".ssh/");
|
||||
this._path = plugins.path.join(plugins.smartpath.get.home(),".ssh/");
|
||||
};
|
||||
}
|
||||
writeToDir(){ // syncs sshInstance to directory
|
||||
this.sshKeyArray.forEach((sshKeyArg) => {
|
||||
sshKeyArg.store(this.path);
|
||||
|
||||
this._sshKeyArray.forEach((sshKeyArg) => {
|
||||
sshKeyArg.store(this._path);
|
||||
});
|
||||
this._sshConfig.store(this._path);
|
||||
};
|
||||
readFromDir(){ // syncs sshInstance from directory
|
||||
|
||||
}
|
||||
updateDirPath(dirPathArg:string){
|
||||
this._path = dirPathArg;
|
||||
};
|
||||
getKeys(){
|
||||
return helpers.sshKeyArrayFromDir(this.path);
|
||||
return helpers.sshKeyArrayFromDir(this._path);
|
||||
}
|
||||
}
|
@ -15,7 +15,7 @@ export class SshInstance {
|
||||
optionsArg ? void(0) : optionsArg = {};
|
||||
this._sshKeyArray = [];
|
||||
this._sshConfig = new SshConfig(this._sshKeyArray);
|
||||
this._sshDir = new SshDir(this._sshKeyArray,optionsArg.sshDirPath);
|
||||
this._sshDir = new SshDir(this._sshKeyArray,this._sshConfig,optionsArg.sshDirPath);
|
||||
this._sshSync = optionsArg.sshSync;
|
||||
};
|
||||
|
||||
@ -101,5 +101,3 @@ export class SshInstance {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
@ -54,7 +54,12 @@ export class SshKey {
|
||||
this._pubKey = plugins.base64.decode(publicKeyArg);
|
||||
}
|
||||
|
||||
|
||||
get authorized(){
|
||||
return this._authorized;
|
||||
}
|
||||
set authorized(authorizedArg:boolean){
|
||||
this._authorized = authorizedArg;
|
||||
}
|
||||
get type(){
|
||||
if(this._privKey && this._pubKey){
|
||||
return "duplex";
|
||||
@ -72,16 +77,18 @@ export class SshKey {
|
||||
read(filePathArg){
|
||||
|
||||
}
|
||||
store(filePathArg?:string){
|
||||
let filePathObj = plugins.path.parse(filePathArg);
|
||||
if(filePathObj.ext = ".priv"){
|
||||
plugins.smartfile.memory.toFsSync(this._privKey,filePathArg);
|
||||
} else if (filePathObj.ext = ".pub"){
|
||||
plugins.smartfile.memory.toFsSync(this._pubKey,filePathArg);
|
||||
} else { //we assume we are given a directory as filePathArg, so we store the whole key
|
||||
plugins.fs.ensureDirSync(filePathObj.dir);
|
||||
this.store(plugins.path.join(filePathObj.dir,"key.priv")); // call this function recursivly
|
||||
this.store(plugins.path.join(filePathObj.dir,"key.pub")); // call this function recursivly
|
||||
store(dirPathArg:string){
|
||||
plugins.fs.ensureDirSync(dirPathArg);
|
||||
let fileNameBase = this.host;
|
||||
if(this._privKey){
|
||||
let filePath = plugins.path.join(dirPathArg,fileNameBase);
|
||||
plugins.smartfile.memory.toFsSync(this._privKey,filePath);
|
||||
plugins.shelljs.chmod(600,filePath);
|
||||
};
|
||||
if (this._pubKey){
|
||||
let filePath = plugins.path.join(dirPathArg,fileNameBase + ".pub");
|
||||
plugins.smartfile.memory.toFsSync(this._pubKey,filePath);
|
||||
plugins.shelljs.chmod(600,filePath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,5 +4,7 @@ export let base64 = require("js-base64").Base64;
|
||||
export let fs = require("fs-extra");
|
||||
export let minimatch = require("minimatch");
|
||||
export import path = require("path");
|
||||
export let q = require("q");
|
||||
export let shelljs = require("shelljs");
|
||||
export import smartfile = require("smartfile");
|
||||
export import smartpath = require("smartpath");
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"version": false,
|
||||
"dependencies": {},
|
||||
"ambientDependencies": {
|
||||
"colors": "registry:dt/colors#0.6.0-1+20160317120654",
|
||||
"node": "registry:dt/node#4.0.0+20160423143914"
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user