UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

49 lines (39 loc) 1.3 kB
import { basename } from 'path'; import { createLeaf, TerseError } from '@alwaysai/alwayscli'; import { yesCliInput } from '../../cli-inputs/yes-cli-input'; import { modelConfigFile } from './model-config-file'; import { checkTerminalIsInteractive } from '../../util/prompt'; import { echo } from '../../util/echo'; type Config = Parameters<typeof modelConfigFile.write>[0]; const ALREADY_EXISTS_MESSAGE = "You're already in an alwaysAI model directory!"; export const init = createLeaf({ name: 'init', description: 'Initialize this directory as an alwaysAI model', options: { yes: yesCliInput, }, async action(_, { yes }) { if (!yes) { checkTerminalIsInteractive(); } if (modelConfigFile.exists()) { if (!yes) { throw new TerseError(ALREADY_EXISTS_MESSAGE); } else { return ALREADY_EXISTS_MESSAGE; } } echo('Welcome! This command will initialize this directory as an alwaysAI model.'); echo(); const defaultConfig: Config = { id: `alwaysai/${basename(process.cwd())}`, version: '0.0.0-0', accuracy: '', description: '', license: 'UNLICENSED', public: true, }; modelConfigFile.write(defaultConfig); return `Wrote ${basename(modelConfigFile.path)}`; }, });