@lazycatcloud/lzc-cli 1.2.54 → 1.2.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +13 -0
- package/lib/app/apkshell.js +1 -1
- package/lib/app/lpk_build.js +28 -1
- package/lib/docker/index.js +52 -37
- package/lib/log.js +47 -0
- package/lib/utils.js +25 -5
- package/package.json +4 -2
- package/scripts/cli.js +34 -55
- package/scripts/lzc-docker-compose.js +43 -0
- package/scripts/lzc-docker.js +43 -0
- package/template/_lpk/vue.lzc-build.yml.in +3 -0
package/changelog.md
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
# 1.2.56
|
|
2
|
+
|
|
3
|
+
1. 修复没有写权限的lpk文件,不能通过 lzc-cli app install 安装
|
|
4
|
+
|
|
5
|
+
# 1.2.55
|
|
6
|
+
|
|
7
|
+
1. 添加 lzc-docker 命令
|
|
8
|
+
2. 添加 lzc-docker-compose 命令
|
|
9
|
+
3. 添加 deploy_params 打包支持
|
|
10
|
+
4. 添加 lzc-cli 版本检测
|
|
11
|
+
5. 修复 lzc-cli zsh/bash 补全错误
|
|
12
|
+
6. 隐藏 triggerApk 错误
|
|
13
|
+
|
|
1
14
|
# 1.2.54
|
|
2
15
|
|
|
3
16
|
1. 添加 lzc-cli docker 命令
|
package/lib/app/apkshell.js
CHANGED
package/lib/app/lpk_build.js
CHANGED
|
@@ -76,6 +76,33 @@ async function fetchIconTo(options, cwd, destDir) {
|
|
|
76
76
|
return
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
+
async function fetchLzcDeployParamTo(options, cwd, destDir) {
|
|
80
|
+
let deployParamsPath = options["deploy_params"]
|
|
81
|
+
if (!deployParamsPath) {
|
|
82
|
+
logger.debug("deploy_params 没有指定")
|
|
83
|
+
let cwdDeployParamsPath = path.join(cwd, "lzc-deploy-params.yml")
|
|
84
|
+
if (isFileExist(cwdDeployParamsPath)) {
|
|
85
|
+
deployParamsPath = cwdDeployParamsPath
|
|
86
|
+
logger.debug("检测当前目录下具有 lzc-deploy-params.yml")
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (!deployParamsPath) {
|
|
90
|
+
return
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (!path.isAbsolute(deployParamsPath)) {
|
|
94
|
+
deployParamsPath = path.resolve(cwd, deployParamsPath)
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (!isFileExist(deployParamsPath)) {
|
|
98
|
+
logger.warn(`deploy_params ${deployParamsPath} 不存在`)
|
|
99
|
+
return
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
fs.copyFileSync(deployParamsPath, path.join(destDir, "deploy_params.yml"))
|
|
103
|
+
return
|
|
104
|
+
}
|
|
105
|
+
|
|
79
106
|
// 提供一些方便的环境变量,可以在 lzc-build.yml 中直接使用
|
|
80
107
|
// - LocalIP 本地局域网ip
|
|
81
108
|
function localIp() {
|
|
@@ -137,7 +164,7 @@ export class LpkBuild {
|
|
|
137
164
|
this.beforeBuildPackageFn = []
|
|
138
165
|
this.beforeDumpYamlFn = []
|
|
139
166
|
this.beforeTarContentFn = []
|
|
140
|
-
this.beforeDumpLpkFn = [fetchIconTo]
|
|
167
|
+
this.beforeDumpLpkFn = [fetchIconTo, fetchLzcDeployParamTo]
|
|
141
168
|
}
|
|
142
169
|
|
|
143
170
|
// init 时替换 lzc-build.yml 中的模板字段
|
package/lib/docker/index.js
CHANGED
|
@@ -4,43 +4,52 @@ import { isFileExist, isUserApp, loadFromYaml } from "../utils.js"
|
|
|
4
4
|
import logger from "loglevel"
|
|
5
5
|
import path from "node:path"
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
.middleware((argv, yargs) => {
|
|
13
|
-
argv.dockerArgs = []
|
|
14
|
-
// 找到 'docker-compose' 或者 ’docker’ 在参数中的位置
|
|
15
|
-
let index = argv._.indexOf("docker-compose")
|
|
16
|
-
if (index === -1) {
|
|
17
|
-
index = argv._.indexOf("docker")
|
|
18
|
-
}
|
|
7
|
+
function dockerMiddleware(argv, yargs) {
|
|
8
|
+
if (argv.$0 == "lzc-docker" || argv.$0 == "lzc-docker-compose") {
|
|
9
|
+
argv.dockerArgs = argv._
|
|
10
|
+
return
|
|
11
|
+
}
|
|
19
12
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
argv.dockerArgs = []
|
|
14
|
+
// 找到 'docker-compose' 或者 ’docker’ 在参数中的位置
|
|
15
|
+
let index = argv._.indexOf("docker-compose")
|
|
16
|
+
if (index === -1) {
|
|
17
|
+
index = argv._.indexOf("docker")
|
|
18
|
+
}
|
|
23
19
|
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
if (index !== -1 && index < argv._.length - 1) {
|
|
21
|
+
// 获取原始的命令行参数
|
|
22
|
+
const originalArgs = argv._
|
|
26
23
|
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
// 将 'docker-compose' 或者 ’docker’ 之后的所有参数(包括选项)移到 dockerArgs 数组中
|
|
25
|
+
argv.dockerArgs = originalArgs.slice(index + 1)
|
|
29
26
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
27
|
+
// 从原始参数中移除这些参数
|
|
28
|
+
argv._ = argv._.slice(0, index + 1)
|
|
29
|
+
|
|
30
|
+
// 移除已经被处理的参数
|
|
31
|
+
for (const arg of argv.dockerArgs) {
|
|
32
|
+
delete argv[arg]
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return argv
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function builder(args) {
|
|
39
|
+
// 禁用严格模式,允许未知参数
|
|
40
|
+
return args
|
|
41
|
+
.parserConfiguration({
|
|
42
|
+
"unknown-options-as-args": true
|
|
36
43
|
})
|
|
44
|
+
.middleware(dockerMiddleware)
|
|
45
|
+
.strict(false)
|
|
46
|
+
}
|
|
37
47
|
|
|
38
|
-
|
|
39
|
-
|
|
48
|
+
export function singleLzcDockerCommand(commandName = "docker") {
|
|
49
|
+
return {
|
|
50
|
+
command: commandName,
|
|
40
51
|
desc: "微服应用 docker 管理",
|
|
41
|
-
builder:
|
|
42
|
-
return args.strict(false) // 禁用严格模式,允许未知参数
|
|
43
|
-
},
|
|
52
|
+
builder: builder,
|
|
44
53
|
handler: async (args) => {
|
|
45
54
|
logger.debug("args: ", args)
|
|
46
55
|
await shellApi.init()
|
|
@@ -49,13 +58,14 @@ export function lzcDockerCommand(program) {
|
|
|
49
58
|
logger.debug("docker", args.dockerArgs)
|
|
50
59
|
await bridge.lzcDocker(args.dockerArgs)
|
|
51
60
|
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function singleLzcDockerComposeCommand(commandName = "docker-compose") {
|
|
65
|
+
return {
|
|
66
|
+
command: commandName,
|
|
55
67
|
desc: "微服应用 docker-compose 管理",
|
|
56
|
-
builder:
|
|
57
|
-
return args.strict(false) // 禁用严格模式,允许未知参数
|
|
58
|
-
},
|
|
68
|
+
builder: builder,
|
|
59
69
|
handler: async (args) => {
|
|
60
70
|
logger.debug("args: ", args)
|
|
61
71
|
await shellApi.init()
|
|
@@ -86,5 +96,10 @@ export function lzcDockerCommand(program) {
|
|
|
86
96
|
logger.debug("docker-compose", options.join(" "))
|
|
87
97
|
await bridge.lzcDockerCompose(options)
|
|
88
98
|
}
|
|
89
|
-
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export function lzcDockerCommand(program) {
|
|
103
|
+
program.command(singleLzcDockerCommand())
|
|
104
|
+
program.command(singleLzcDockerComposeCommand())
|
|
90
105
|
}
|
package/lib/log.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import chalk from "chalk"
|
|
2
|
+
import logger from "loglevel"
|
|
3
|
+
|
|
4
|
+
export function initLogger() {
|
|
5
|
+
// logger level middleware
|
|
6
|
+
const logLevelOriginalFactory = logger.methodFactory
|
|
7
|
+
logger.methodFactory = function (methodName, logLevel, loggerName) {
|
|
8
|
+
let debug = logLevel <= logger.levels.DEBUG
|
|
9
|
+
let rawMethod = logLevelOriginalFactory(methodName, logLevel, loggerName)
|
|
10
|
+
return function (...args) {
|
|
11
|
+
let color = (msg) => chalk.gray
|
|
12
|
+
switch (methodName) {
|
|
13
|
+
case "trace":
|
|
14
|
+
color = chalk.dim.cyan
|
|
15
|
+
break
|
|
16
|
+
case "debug":
|
|
17
|
+
color = chalk.blue
|
|
18
|
+
break
|
|
19
|
+
case "info":
|
|
20
|
+
color = chalk.green
|
|
21
|
+
break
|
|
22
|
+
case "warn":
|
|
23
|
+
color = chalk.magenta
|
|
24
|
+
break
|
|
25
|
+
case "error":
|
|
26
|
+
color = chalk.bold.red
|
|
27
|
+
break
|
|
28
|
+
}
|
|
29
|
+
const prefix = loggerName ?? methodName
|
|
30
|
+
rawMethod(
|
|
31
|
+
(debug ? `[${prefix}] ` : "") +
|
|
32
|
+
args
|
|
33
|
+
.map((a) => {
|
|
34
|
+
let res = a
|
|
35
|
+
if (typeof a == "object") {
|
|
36
|
+
res = JSON.stringify(a, undefined, 4)
|
|
37
|
+
}
|
|
38
|
+
return color(res)
|
|
39
|
+
})
|
|
40
|
+
.join(" ")
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
logger.setDefaultLevel("info")
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
initLogger()
|
package/lib/utils.js
CHANGED
|
@@ -19,6 +19,7 @@ import dns from "node:dns/promises"
|
|
|
19
19
|
import axios from "axios"
|
|
20
20
|
import AdmZip from "adm-zip"
|
|
21
21
|
import commandExists from "command-exists"
|
|
22
|
+
import fetch from "node-fetch"
|
|
22
23
|
|
|
23
24
|
// lzc-cli 包的 pkgInfo 信息
|
|
24
25
|
export const pkgInfo = JSON.parse(
|
|
@@ -27,6 +28,27 @@ export const pkgInfo = JSON.parse(
|
|
|
27
28
|
)
|
|
28
29
|
)
|
|
29
30
|
|
|
31
|
+
export async function getLatestVersion(controller, pkgName = pkgInfo.name) {
|
|
32
|
+
const url = `https://data.jsdelivr.com/v1/package/npm/${pkgName}`
|
|
33
|
+
try {
|
|
34
|
+
logger.debug("check latest lzc-cli version...")
|
|
35
|
+
const data = await fetch(url, {
|
|
36
|
+
signal: controller.signal
|
|
37
|
+
})
|
|
38
|
+
const content = await data.json()
|
|
39
|
+
const latestVersion = content["tags"]["latest"]
|
|
40
|
+
if (latestVersion != pkgInfo.version) {
|
|
41
|
+
logger.warn(
|
|
42
|
+
`检测到 ${pkgName} 最新版本为 ${latestVersion},使用 'npm i -g ${pkgName}@${latestVersion}' 升级到最新版本!`
|
|
43
|
+
)
|
|
44
|
+
} else {
|
|
45
|
+
logger.debug(`已经在最新版本: ${latestVersion}`)
|
|
46
|
+
}
|
|
47
|
+
} catch (err) {
|
|
48
|
+
logger.debug(`请求 ${url} 失败, error: ${err}`)
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
30
52
|
// 创建 Axios 实例
|
|
31
53
|
export const api = axios.create()
|
|
32
54
|
|
|
@@ -260,12 +282,10 @@ export function isDirExist(path) {
|
|
|
260
282
|
|
|
261
283
|
export function isFileExist(path) {
|
|
262
284
|
try {
|
|
263
|
-
fs.accessSync(
|
|
264
|
-
path,
|
|
265
|
-
fs.constants.W_OK | fs.constants.R_OK | fs.constants.F_OK
|
|
266
|
-
)
|
|
285
|
+
fs.accessSync(path, fs.constants.R_OK | fs.constants.F_OK)
|
|
267
286
|
return true
|
|
268
|
-
} catch {
|
|
287
|
+
} catch (err) {
|
|
288
|
+
logger.debug(`access ${path} error: ${err}`)
|
|
269
289
|
return false
|
|
270
290
|
}
|
|
271
291
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lazycatcloud/lzc-cli",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.56",
|
|
4
4
|
"description": "lazycat cloud developer kit",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"prepublishOnly": "node check-changelog.js"
|
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
"changelog.md"
|
|
13
13
|
],
|
|
14
14
|
"bin": {
|
|
15
|
-
"lzc-cli": "scripts/cli.js"
|
|
15
|
+
"lzc-cli": "scripts/cli.js",
|
|
16
|
+
"lzc-docker": "scripts/lzc-docker.js",
|
|
17
|
+
"lzc-docker-compose": "scripts/lzc-docker-compose.js"
|
|
16
18
|
},
|
|
17
19
|
"type": "module",
|
|
18
20
|
"keywords": [
|
package/scripts/cli.js
CHANGED
|
@@ -5,59 +5,32 @@ import fs from "fs"
|
|
|
5
5
|
import logger from "loglevel"
|
|
6
6
|
import yargs from "yargs"
|
|
7
7
|
import { hideBin } from "yargs/helpers"
|
|
8
|
-
import
|
|
8
|
+
import "../lib/log.js" // init logger
|
|
9
9
|
|
|
10
|
-
import { contextDirname, pkgInfo } from "../lib/utils.js"
|
|
10
|
+
import { contextDirname, pkgInfo, getLatestVersion } from "../lib/utils.js"
|
|
11
11
|
import { boxCommand } from "../lib/box/index.js"
|
|
12
12
|
import { appstoreCommand } from "../lib/appstore/index.js"
|
|
13
13
|
import { lpkAppCommand, lpkProjectCommand } from "../lib/app/index.js"
|
|
14
14
|
import { configCommand } from "../lib/config/index.js"
|
|
15
15
|
import { lzcDockerCommand } from "../lib/docker/index.js"
|
|
16
16
|
|
|
17
|
-
// logger level middleware
|
|
18
|
-
const logLevelOriginalFactory = logger.methodFactory
|
|
19
|
-
logger.methodFactory = function (methodName, logLevel, loggerName) {
|
|
20
|
-
let debug = logLevel <= logger.levels.DEBUG
|
|
21
|
-
let rawMethod = logLevelOriginalFactory(methodName, logLevel, loggerName)
|
|
22
|
-
return function (...args) {
|
|
23
|
-
let color = (msg) => chalk.gray
|
|
24
|
-
switch (methodName) {
|
|
25
|
-
case "trace":
|
|
26
|
-
color = chalk.dim.cyan
|
|
27
|
-
break
|
|
28
|
-
case "debug":
|
|
29
|
-
color = chalk.blue
|
|
30
|
-
break
|
|
31
|
-
case "info":
|
|
32
|
-
color = chalk.green
|
|
33
|
-
break
|
|
34
|
-
case "warn":
|
|
35
|
-
color = chalk.magenta
|
|
36
|
-
break
|
|
37
|
-
case "error":
|
|
38
|
-
color = chalk.bold.red
|
|
39
|
-
break
|
|
40
|
-
}
|
|
41
|
-
const prefix = loggerName ?? methodName
|
|
42
|
-
rawMethod(
|
|
43
|
-
(debug ? `[${prefix}] ` : "") +
|
|
44
|
-
args
|
|
45
|
-
.map((a) => {
|
|
46
|
-
let res = a
|
|
47
|
-
if (typeof a == "object") {
|
|
48
|
-
res = JSON.stringify(a, undefined, 4)
|
|
49
|
-
}
|
|
50
|
-
return color(res)
|
|
51
|
-
})
|
|
52
|
-
.join(" ")
|
|
53
|
-
)
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
logger.setDefaultLevel("info")
|
|
57
17
|
function setLoggerLevel({ log }) {
|
|
58
18
|
logger.setLevel(log, false)
|
|
59
19
|
}
|
|
60
20
|
|
|
21
|
+
function checkLatestVersion(controller) {
|
|
22
|
+
return ({ _: args }) => {
|
|
23
|
+
if (args.length > 0) {
|
|
24
|
+
switch (args[0]) {
|
|
25
|
+
case "project":
|
|
26
|
+
case "app":
|
|
27
|
+
case "appstore":
|
|
28
|
+
getLatestVersion(controller)
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
61
34
|
const program = yargs(hideBin(process.argv))
|
|
62
35
|
.scriptName("lzc-cli")
|
|
63
36
|
.usage("<command> [options]")
|
|
@@ -83,24 +56,30 @@ lzcDockerCommand(program)
|
|
|
83
56
|
|
|
84
57
|
// 当没有参数的时候,默认显示帮助。
|
|
85
58
|
;(async () => {
|
|
59
|
+
const controller = new AbortController()
|
|
60
|
+
|
|
86
61
|
const parser = program
|
|
87
62
|
.strict()
|
|
88
63
|
.showHelpOnFail(false, "使用 lzc-cli help 查看更多帮助")
|
|
89
|
-
.middleware([setLoggerLevel])
|
|
64
|
+
.middleware([setLoggerLevel, checkLatestVersion(controller)])
|
|
90
65
|
.parse()
|
|
91
66
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
67
|
+
try {
|
|
68
|
+
const argv = await parser
|
|
69
|
+
if (argv._.length == 1) {
|
|
70
|
+
switch (argv._[0]) {
|
|
71
|
+
case "box":
|
|
72
|
+
case "app":
|
|
73
|
+
case "project":
|
|
74
|
+
case "appstore":
|
|
75
|
+
case "config":
|
|
76
|
+
program.showHelp()
|
|
77
|
+
return
|
|
78
|
+
}
|
|
79
|
+
} else if (argv._.length == 0) {
|
|
80
|
+
program.showHelp()
|
|
102
81
|
}
|
|
103
|
-
}
|
|
104
|
-
|
|
82
|
+
} finally {
|
|
83
|
+
controller.abort()
|
|
105
84
|
}
|
|
106
85
|
})()
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import process from "process"
|
|
3
|
+
import logger from "loglevel"
|
|
4
|
+
import yargs from "yargs"
|
|
5
|
+
import { hideBin } from "yargs/helpers"
|
|
6
|
+
|
|
7
|
+
import "../lib/log.js"
|
|
8
|
+
import { pkgInfo } from "../lib/utils.js"
|
|
9
|
+
import { singleLzcDockerComposeCommand } from "../lib/docker/index.js"
|
|
10
|
+
|
|
11
|
+
function setLoggerLevel({ log }) {
|
|
12
|
+
logger.setLevel(log, false)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const program = yargs(hideBin(process.argv))
|
|
16
|
+
.scriptName("lzc-docker-compose")
|
|
17
|
+
.usage("<command> [options]")
|
|
18
|
+
.version(`lzc-docker-compose ${pkgInfo.version}`)
|
|
19
|
+
.option("log", {
|
|
20
|
+
type: "string",
|
|
21
|
+
default: "info",
|
|
22
|
+
describe: "log level 'trace', 'debug', 'info', 'warn', 'error'"
|
|
23
|
+
})
|
|
24
|
+
.option("help", {
|
|
25
|
+
alias: "h",
|
|
26
|
+
type: "boolean",
|
|
27
|
+
default: false
|
|
28
|
+
})
|
|
29
|
+
.command(singleLzcDockerComposeCommand("$0"))
|
|
30
|
+
|
|
31
|
+
// 当没有参数的时候,默认显示帮助。
|
|
32
|
+
;(async () => {
|
|
33
|
+
const parser = program
|
|
34
|
+
.strict(false)
|
|
35
|
+
.showHelpOnFail(false, "使用 lzc-cli help 查看更多帮助")
|
|
36
|
+
.middleware([setLoggerLevel])
|
|
37
|
+
.parse()
|
|
38
|
+
|
|
39
|
+
const argv = await parser
|
|
40
|
+
if (argv._.length == 0) {
|
|
41
|
+
program.showHelp()
|
|
42
|
+
}
|
|
43
|
+
})()
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import process from "process"
|
|
3
|
+
import logger from "loglevel"
|
|
4
|
+
import yargs from "yargs"
|
|
5
|
+
import { hideBin } from "yargs/helpers"
|
|
6
|
+
|
|
7
|
+
import "../lib/log.js"
|
|
8
|
+
import { pkgInfo } from "../lib/utils.js"
|
|
9
|
+
import { singleLzcDockerCommand } from "../lib/docker/index.js"
|
|
10
|
+
|
|
11
|
+
function setLoggerLevel({ log }) {
|
|
12
|
+
logger.setLevel(log, false)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const program = yargs(hideBin(process.argv))
|
|
16
|
+
.scriptName("lzc-docker")
|
|
17
|
+
.usage("<command> [options]")
|
|
18
|
+
.version(`lzc-docker ${pkgInfo.version}`)
|
|
19
|
+
.option("log", {
|
|
20
|
+
type: "string",
|
|
21
|
+
default: "info",
|
|
22
|
+
describe: "log level 'trace', 'debug', 'info', 'warn', 'error'"
|
|
23
|
+
})
|
|
24
|
+
.option("help", {
|
|
25
|
+
alias: "h",
|
|
26
|
+
type: "boolean",
|
|
27
|
+
default: false
|
|
28
|
+
})
|
|
29
|
+
.command(singleLzcDockerCommand("$0"))
|
|
30
|
+
|
|
31
|
+
// 当没有参数的时候,默认显示帮助。
|
|
32
|
+
;(async () => {
|
|
33
|
+
const parser = program
|
|
34
|
+
.strict(false)
|
|
35
|
+
.showHelpOnFail(false, "使用 lzc-cli help 查看更多帮助")
|
|
36
|
+
.middleware([setLoggerLevel])
|
|
37
|
+
.parse()
|
|
38
|
+
|
|
39
|
+
const argv = await parser
|
|
40
|
+
if (argv._.length == 0) {
|
|
41
|
+
program.showHelp()
|
|
42
|
+
}
|
|
43
|
+
})()
|