65 lines
1.4 KiB
JavaScript
65 lines
1.4 KiB
JavaScript
#!/usr/bin/env node
|
|
import path from 'node:path'
|
|
|
|
const rawArgs = process.argv.slice(2)
|
|
const command = rawArgs.shift()
|
|
const rootIndex = rawArgs.indexOf('--root')
|
|
if (rootIndex >= 0) {
|
|
const root = rawArgs[rootIndex + 1]
|
|
if (!root)
|
|
throw new Error('--root 需要一个目录')
|
|
rawArgs.splice(rootIndex, 2)
|
|
process.chdir(path.resolve(root))
|
|
}
|
|
process.argv = [process.argv[0], process.argv[1], ...rawArgs]
|
|
|
|
switch (command) {
|
|
case 'dev':
|
|
await import('./dev.ts')
|
|
break
|
|
case 'present':
|
|
await import('./present.ts')
|
|
break
|
|
case 'build':
|
|
await import('./build.ts')
|
|
break
|
|
case 'check':
|
|
await (await import('./check.ts')).runCheck()
|
|
break
|
|
case 'export':
|
|
await import('./export.ts')
|
|
break
|
|
case 'init':
|
|
await import('./init.ts')
|
|
break
|
|
case 'install-browser':
|
|
await import('./install-browser.ts')
|
|
break
|
|
case undefined:
|
|
case 'help':
|
|
case '--help':
|
|
case '-h':
|
|
printHelp()
|
|
break
|
|
default:
|
|
console.error(`未知命令:${command}`)
|
|
printHelp()
|
|
process.exitCode = 1
|
|
}
|
|
|
|
function printHelp() {
|
|
console.log(`easy-slides
|
|
|
|
用法:
|
|
easy-slides init [directory] [--engine <package-spec>]
|
|
easy-slides install-browser [--with-deps]
|
|
easy-slides dev [slug|slides.md]
|
|
easy-slides present <slug>
|
|
easy-slides build
|
|
easy-slides check
|
|
easy-slides export <slug> --format pdf|png|pptx
|
|
|
|
全局选项:
|
|
--root <directory> 在指定内容项目中运行`)
|
|
}
|