48 lines
1.4 KiB
TypeScript
48 lines
1.4 KiB
TypeScript
import * as plugins from './smartssh.plugins.js';
|
|
import * as helpers from './smartssh.classes.helpers.js';
|
|
import { SshInstance } from './smartssh.classes.sshinstance.js';
|
|
import { SshKey } from './smartssh.classes.sshkey.js';
|
|
import { SshConfig } from './smartssh.classes.sshconfig.js';
|
|
|
|
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);
|
|
}
|
|
|
|
/**
|
|
* TODO: implement reading of directories
|
|
*/
|
|
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);
|
|
}
|
|
}
|