2016-11-23 11:38:38 +00:00
|
|
|
import 'typings-global'
|
|
|
|
import * as plugins from './smartssh.plugins'
|
|
|
|
import * as helpers from './smartssh.classes.helpers'
|
2017-06-15 17:25:12 +00:00
|
|
|
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
|
2017-06-15 17:25:12 +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
|
|
|
|
} else {
|
|
|
|
this._path = plugins.path.join(plugins.smartpath.get.home(), '.ssh/')
|
2016-05-31 17:00:52 +00:00
|
|
|
}
|
2017-06-15 17:25:12 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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)
|
|
|
|
}
|
2016-11-23 11:38:38 +00:00
|
|
|
}
|