1 | #!/usr/bin/env node
|
2 |
|
3 | const logger = require('@acyort/logger')()
|
4 | const { join } = require('path')
|
5 | const parser = require('../lib/cli/parser')
|
6 | const acyort = require('../lib')
|
7 | const getConfig = require('../lib/config')
|
8 |
|
9 | const argv = process.argv.slice(2)
|
10 | const base = process.cwd()
|
11 | const ignores = ['init', '-h', '--help', '-v', '--version']
|
12 |
|
13 | try {
|
14 | const config = getConfig(base)
|
15 |
|
16 | if (config) {
|
17 | const ctx = acyort(config)
|
18 | const { scripts, plugins } = config
|
19 | const exec = (path) => {
|
20 |
|
21 | require(path)({ ...ctx, process: undefined })
|
22 | }
|
23 |
|
24 | scripts.forEach(name => exec(join(base, 'scripts', name)))
|
25 | plugins.forEach(name => exec(join(base, 'node_modules', name)))
|
26 |
|
27 | parser(argv, {
|
28 | process: ctx.process,
|
29 | logger: ctx.logger,
|
30 | version: ctx.version,
|
31 | config: ctx.config,
|
32 | })
|
33 | } else if (argv[0] && !ignores.includes(argv[0])) {
|
34 | logger.error('cannot find `config.yml` or configuration error')
|
35 | } else {
|
36 | parser(argv)
|
37 | }
|
38 | } catch (e) {
|
39 | logger.error(e)
|
40 | }
|