import { resolve } from 'node:path' import { defineCommand, runMain } from 'citty' import type { CLIOptions } from './types' export function createCLI(opts: CLIOptions) { const main = defineCommand({ meta: { name: opts.name, description: opts.description, }, args: { dir: { type: 'positional', description: 'Project directory', required: false, default: 'docs', }, template: { type: 'string', alias: 't', description: 'Template to use (default, i18n)', required: false, default: 'default', }, }, async setup(context) { const dir = resolve(context.args.dir as string) const template = context.args.template as 'i18n' | 'default' if (!['i18n', 'default'].includes(template)) { throw new Error('Invalid template') } const { runCommand } = await import('@nuxt/cli') await runCommand('init', [dir, '-t', `gh:nuxt-content/docus/.starters/${template}`]) }, }) return { runMain: () => runMain(main), } }