Skip to content
Snippets Groups Projects
Select Git revision
  • a929f5769b6be4a386fa404b2c545470ac32f24d
  • live_exam_os_ubuntu default protected
2 results

vmAttachSync.go

Blame
  • LocalConfig.ts 1.40 KiB
    import * as fs         from 'fs';
    import logger          from '../shared/logging/WinstonLogger';
    import SessionManager  from '../managers/SessionManager';
    import Config          from './Config';
    import LocalConfigKeys from '../types/LocalConfigKeys';
    import GitlabManager   from '../managers/GitlabManager';
    import JSON5           from 'json5';
    
    
    class LocalConfig {
        private get configPath(): string {
            return `${ Config.localConfig.folder }/${ Config.localConfig.file }`;
        }
    
        private _config: { [key in LocalConfigKeys]?: any } = {};
    
        loadConfig() {
            if ( !fs.existsSync(this.configPath) ) {
                fs.mkdirSync(Config.localConfig.folder, { recursive: true });
    
                fs.writeFileSync(this.configPath, JSON5.stringify({}));
            }
    
            try {
                this._config = JSON5.parse(fs.readFileSync(this.configPath).toString());
    
                SessionManager.token = this._config.apiToken;
                GitlabManager.token = this._config.gitlabPersonalToken;
            } catch ( error ) { }
        }
    
        updateConfig(key: LocalConfigKeys, value: any) {
            if ( (this._config as any)[key] === value ) {
                return;
            }
    
            (this._config as any)[key] = value;
    
            try {
                fs.writeFileSync(this.configPath, JSON5.stringify(this._config, null, 4));
            } catch ( error ) {
                logger.error(error);
            }
        }
    }
    
    
    export default new LocalConfig();