2016-11-23 11:38:38 +00:00
|
|
|
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'
|
2016-05-31 17:16:45 +00:00
|
|
|
export class SshDir { // sshDir class -> NOT EXPORTED, ONLY FOR INTERNAL USE
|
2016-11-23 11:38:38 +00:00
|
|
|
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
|
2016-05-31 22:56:24 +00:00
|
|
|
} else {
|
2016-11-23 11:38:38 +00:00
|
|
|
this._path = plugins.path.join(plugins.smartpath.get.home(),'.ssh/')
|
2016-06-24 18:58:55 +00:00
|
|
|
};
|
2016-05-31 17:00:52 +00:00
|
|
|
}
|
2016-11-23 11:38:38 +00:00
|
|
|
writeToDir(dirPathArg?: string) { // syncs sshInstance to directory
|
|
|
|
let path = this._path
|
|
|
|
if (dirPathArg) path = dirPathArg
|
2016-06-26 14:16:12 +00:00
|
|
|
this._sshKeyArray.forEach((sshKeyArg) => {
|
2016-11-23 11:38:38 +00:00
|
|
|
sshKeyArg.store(path)
|
|
|
|
})
|
|
|
|
this._sshConfig.store(path)
|
2016-05-31 17:00:52 +00:00
|
|
|
};
|
2016-11-23 11:38:38 +00:00
|
|
|
readFromDir(dirPathArg?: string) { // syncs sshInstance from directory
|
|
|
|
let path = this._path
|
|
|
|
if (dirPathArg) path = dirPathArg
|
2016-06-01 00:31:29 +00:00
|
|
|
}
|
2016-11-23 11:38:38 +00:00
|
|
|
updateDirPath(dirPathArg: string) {
|
|
|
|
this._path = dirPathArg
|
2016-06-26 14:16:12 +00:00
|
|
|
};
|
2016-11-23 11:38:38 +00:00
|
|
|
getKeys() {
|
|
|
|
return helpers.sshKeyArrayFromDir(this._path)
|
2016-05-31 17:00:52 +00:00
|
|
|
}
|
2016-11-23 11:38:38 +00:00
|
|
|
}
|