feat: add easy-slides CLI
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
#!/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 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 dev [slug|slides.md]
|
||||
easy-slides present <slug>
|
||||
easy-slides build
|
||||
easy-slides check
|
||||
easy-slides export <slug> --format pdf|png|pptx
|
||||
|
||||
全局选项:
|
||||
--root <directory> 在指定内容项目中运行`)
|
||||
}
|
||||
Reference in New Issue
Block a user