import { platform } from 'os';

export const NODE_ENV = process.env.NODE_ENV;

export const ALWAYSAI_AUDIT_LOG = process.env.ALWAYSAI_AUDIT_LOG;
export const ALWAYSAI_DO_NOT_TRACK = parseBoolean(
  process.env.ALWAYSAI_DO_NOT_TRACK
);
export const ALWAYSAI_OS_PLATFORM = parseOsPlatform(
  process.env.ALWAYSAI_OS_PLATFORM
);
export const ALWAYSAI_SHOW_HIDDEN = parseBoolean(
  process.env.ALWAYSAI_SHOW_HIDDEN
);
export const ALWAYSAI_SYSTEM_ID = process.env.ALWAYSAI_SYSTEM_ID;
export const ALWAYSAI_LOG_LEVEL = process.env.ALWAYSAI_LOG_LEVEL;
export const ALWAYSAI_LOG_TO_CONSOLE = process.env.ALWAYSAI_LOG_TO_CONSOLE;
export const ALWAYSAI_STORAGE_DIR_ENV = process.env.ALWAYSAI_STORAGE_DIR;
export const ALWAYSAI_CFG_DIR = process.env.ALWAYSAI_CFG_DIR;
export const ALWAYSAI_TARGET_HW_OVERRIDE = process.env.ALWAYSAI_TARGET_HW;

function parseOsPlatform(str: string | undefined): NodeJS.Platform {
  switch (str) {
    case 'win32':
    case 'darwin':
    case 'linux': {
      return str;
    }
    default:
      return platform();
  }
}

function parseBoolean(str: string | undefined) {
  return str === '1';
}
