forked from clouDr-f2e/monitor
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathutils.js
More file actions
52 lines (44 loc) · 1.35 KB
/
utils.js
File metadata and controls
52 lines (44 loc) · 1.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
const fs = require('fs')
const chalk = require('chalk')
const execa = require('execa')
const path = require('path')
const targets = (exports.targets = fs.readdirSync('packages').filter((f) => {
if (!fs.statSync(`packages/${f}`).isDirectory()) {
return false
}
if (f === 'company') return false
const pkg = require(`../packages/${f}/package.json`)
if (pkg.private && !pkg.buildOptions) {
return false
}
return true
}))
exports.fuzzyMatchTarget = (partialTargets, includeAllMatching) => {
const matched = []
partialTargets.forEach((partialTarget) => {
for (const target of targets) {
if (target.match(partialTarget)) {
matched.push(target)
if (!includeAllMatching) {
break
}
}
}
})
if (matched.length) {
return matched
} else {
console.log()
console.error(` ${chalk.bgRed.white(' ERROR ')} ${chalk.red(`Target ${chalk.underline(partialTargets)} not found!`)}`)
console.log()
process.exit(1)
}
}
exports.getArgv = () => {
var argv = require('minimist')(process.argv.slice(2))
return argv
}
exports.binRun = (bin, args, opts = {}) => execa(bin, args, { stdio: 'inherit', ...opts })
exports.getPkgRoot = (pkg) => path.resolve(__dirname, '../packages/' + pkg)
exports.step = (msg) => console.log(chalk.cyan(msg))
exports.errLog = (msg) => console.log(chalk.red(msg))