UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

69 lines (61 loc) 1.88 kB
import { rimraf } from 'rimraf'; import { CliBranch, CliLeaf, CliOneOfInput } from '@alwaysai/alwayscli'; import { ALWAYSAI_CLI_EXECUTABLE_NAME, SYSTEM_IDS } from '../../constants'; import { Spinner, echo } from '../../util'; import { getSystemId, setSystemId } from '../../infrastructure'; import { ALWAYSAI_SHOW_HIDDEN, ALWAYSAI_SYSTEM_ID } from '../../environment'; import { LOCAL_AAI_CFG_DIR } from '../../paths'; import * as logSymbols from 'log-symbols'; const show = CliLeaf({ name: 'show', description: `Show your current "${ALWAYSAI_CLI_EXECUTABLE_NAME}" configuration`, action() { if (ALWAYSAI_SYSTEM_ID) { echo( `${logSymbols.warning} System ID is overridden by environment variable "ALWAYSAI_SYSTEM_ID"` ); } return { systemId: getSystemId() }; } }); const set = CliLeaf({ name: 'set', description: `Set an "${ALWAYSAI_CLI_EXECUTABLE_NAME}" configuration value`, namedInputs: { systemId: CliOneOfInput({ values: SYSTEM_IDS, required: true }) }, action(_, { systemId }) { if (ALWAYSAI_SYSTEM_ID) { echo( `${logSymbols.warning} System ID is overridden by environment variable "ALWAYSAI_SYSTEM_ID"` ); } return setSystemId(systemId); } }); function purgeConfig(path) { const spinner = Spinner('Removing the configuration files'); try { rimraf.sync(path); spinner.succeed(); } catch (exception) { spinner.fail(); throw exception; } } const purge = CliLeaf({ name: 'purge', description: 'Purge config files and credentials.', action(_) { purgeConfig(LOCAL_AAI_CFG_DIR); } }); export const config = CliBranch({ name: 'config', hidden: !ALWAYSAI_SHOW_HIDDEN, description: `Show, set, or purge "${ALWAYSAI_CLI_EXECUTABLE_NAME}" configuration values`, subcommands: [show, set, purge] }); export const testSuiteFuncs = { purgeConfig };