webnovel-writer.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. #!/usr/bin/env node
  2. // CLI 入口:版本门槛先行,再分发子命令。M0 子命令均为占位,不实现业务逻辑。
  3. import { readFileSync } from 'node:fs'
  4. import { checkNodeVersion } from '../src/runtime/node-version.js'
  5. const gate = checkNodeVersion(process.version)
  6. if (!gate.ok) {
  7. process.stderr.write(gate.message + '\n')
  8. process.exit(1)
  9. }
  10. const command = process.argv[2]
  11. switch (command) {
  12. case '--version':
  13. case '-v':
  14. process.stdout.write(readPackageVersion() + '\n')
  15. break
  16. case 'init':
  17. case 'update':
  18. process.stdout.write(`「${command}」尚未实现(M0 骨架占位)。\n`)
  19. break
  20. case undefined:
  21. process.stdout.write('用法:webnovel-writer <init|update>\n')
  22. break
  23. default:
  24. process.stderr.write(`未知命令「${command}」。可用:init、update。\n`)
  25. process.exit(1)
  26. }
  27. function readPackageVersion() {
  28. const pkgUrl = new URL('../package.json', import.meta.url)
  29. const pkg = JSON.parse(readFileSync(pkgUrl, 'utf8'))
  30. return pkg.version
  31. }