43 lines
1.3 KiB
TypeScript
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)
|
|
}
|
|
}
|