gdscriptify
Version:
A magical documentation tool for GDScript.
95 lines (71 loc) • 2.19 kB
JavaScript
const config = require('./config')
const error = require('./utils/error')
const fs = require('fs')
const generateCodeReferenceFile = require('./core/generateCodeReferenceFile')
const parsedArgs = require('./core/parseArgs')
const path = require('path')
const { name } = require('../package.json')
module.exports = () => {
const args = parsedArgs(process.argv.slice(2))
while (args.length) {
cmd = Object.keys(args[0])[0]
switch (cmd) {
case '-h':
case '--help':
require(`./cmds/help`)(args)
break
case '-d':
case '--directory':
args.findIndex(arg => arg === 'd' || arg === 'directory')
require(`./cmds/directory`)(args)
break
case '-o':
case '--output':
args.findIndex(arg => arg === 'o' || arg === 'output')
require(`./cmds/output`)(args)
break
case '-c':
case '--code':
args.findIndex(arg => arg === 'c' || arg === 'code')
require(`./cmds/code`)(args)
break
case '-m':
case '--markdown':
args.findIndex(arg => arg === 'm' || arg === 'markdown')
require(`./cmds/markdown`)(args)
break
case '-r':
case '--readme':
args.findIndex(arg => arg === 'r' || arg === 'readme')
require(`./cmds/readme`)(args)
break
case '-v':
case '--version':
require(`./cmds/version`)(args)
break
default:
error(`
ERROR: "${cmd}" is not a valid option!
Use "${name} help" to see all the options.
`)
break
}
args.shift()
}
if (fs.existsSync(path.join(config.projectDir, config.projectFile))) {
config.projectType = 'project'
} else if (fs.existsSync(path.join(config.projectDir, config.pluginFile))) {
config.projectType = 'plugin'
}
if (!config.projectType) {
error(`
ERROR: "${config.projectDir}" doesn't have any of the following files:
- "${config.projectFile}"
- "${config.pluginFile}"
GDScriptify needs at least of one those to work properly.
`)
}
config.outputDir = path.join(config.projectDir, config.outputDir)
generateCodeReferenceFile()
}