import "typings-global"; import * as plugins from "./smartssh.plugins"; import * as helpers from "./smartssh.classes.helpers"; 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 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; } else { this._path = plugins.path.join(plugins.smartpath.get.home(),".ssh/"); }; } writeToDir(dirPathArg?:string){ // syncs sshInstance to directory let path = this._path; if(dirPathArg) path = dirPathArg; this._sshKeyArray.forEach((sshKeyArg) => { sshKeyArg.store(path); }); this._sshConfig.store(path); }; readFromDir(dirPathArg?:string){ // syncs sshInstance from directory let path = this._path; if(dirPathArg) path = dirPathArg; } updateDirPath(dirPathArg:string){ this._path = dirPathArg; }; getKeys(){ return helpers.sshKeyArrayFromDir(this._path); } }