alwaysai
Version:
The alwaysAI command-line interface (CLI)
49 lines (39 loc) • 1.3 kB
text/typescript
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)}`;
},
});