smartssh/ts/smartssh.classes.sshdir.ts
2017-06-15 19:25:12 +02:00

43 lines
1.3 KiB
TypeScript

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)
}
}