@lazycatcloud/lzc-cli 1.3.10 → 1.3.11

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 CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.3.11](https://gitee.com/linakesi/lzc-cli/compare/v1.3.10...v1.3.11) (2025-10-10)
4
+
5
+
6
+ ### Features
7
+
8
+ * support setting token through environment variables ([4a25f84](https://gitee.com/linakesi/lzc-cli/commits/4a25f84fe4df938cb3d85f6391e27772dae5b071))
9
+ * the copy-image command adds the `trace-level` parameter ([cd4d4c3](https://gitee.com/linakesi/lzc-cli/commits/cd4d4c351d4bd43bffcfe5f67087c6bffd65d3f4))
10
+
3
11
  ## [1.3.10](https://gitee.com/linakesi/lzc-cli/compare/v0.0.8...v1.3.10) (2025-08-15)
4
12
 
5
13
  ### Bug Fixes
@@ -76,20 +76,31 @@ export function appstoreCommand(program) {
76
76
  default: "amd64",
77
77
  type: "string"
78
78
  })
79
+ // 出于 CI 目的增加控制是否打印进度选项
80
+ yargs.option("trace-level", {
81
+ describe: "trace level 'verbose', 'quiet'",
82
+ default: "verbose",
83
+ type: "string"
84
+ })
79
85
  return yargs
80
86
  },
81
- handler: async ({ img: imageName, arch: platform }) => {
87
+ handler: async ({ img: imageName, arch: platform, traceLevel }) => {
82
88
  const uploadUrl = `${appStoreServerUrl}/api/v3/developer/app/docker/image/push/v3/copy?image=${imageName}&platform=${platform}`
83
89
  const progressUrl = `${appStoreServerUrl}/api/v3/developer/app/docker/image/push/v3/progress?image=${imageName}&platform=${platform}`
84
- logger.info(
85
- `Waiting ... ( copy ${imageName} (${platform}) to lazycat offical registry)`
90
+
91
+ const useCI = traceLevel === "quiet"
92
+ const _logger = logger
93
+ _logger.setLevel(useCI ? _logger.levels.ERROR : _logger.levels.INFO)
94
+
95
+ _logger.info(
96
+ `Waiting ... ( copy ${imageName} (${platform}) to lazycat offical registry)`
86
97
  )
87
98
  try {
88
99
  const resp = await request(uploadUrl)
89
100
  if (resp.ok) {
90
- logger.info("uploading")
101
+ _logger.info("uploading")
91
102
  } else {
92
- logger.error("error: ", resp, await resp.text())
103
+ _logger.error("error: ", resp, await resp.text())
93
104
  return
94
105
  }
95
106
  sleep(1000)
@@ -97,6 +108,10 @@ export function appstoreCommand(program) {
97
108
  let layers = []
98
109
 
99
110
  let refreshProgress = (lys) => {
111
+ if (useCI) {
112
+ // 日志级别为 quiet 时不输出进度(用于 CI 目的)
113
+ return
114
+ }
100
115
  // 关键修改:动态回退多行
101
116
  process.stdout.write("\x1B[?25l") // 隐藏光标
102
117
  if (prevLineCount > 0) {
@@ -130,30 +145,30 @@ export function appstoreCommand(program) {
130
145
  ;(layers ? layers : [])?.forEach((v) => {
131
146
  v.progress = 100
132
147
  })
133
- refreshProgress(layers)
134
- process.stdout.write("\n")
135
148
  if (pgs.errmsg) {
136
- logger.error(
137
- "failed to copyimage ",
138
- imageName,
139
- " err:",
140
- pgs.errmsg
149
+ throw Error(
150
+ `failed to copyimage ${imageName} err: ${pgs.errmsg}`
141
151
  )
142
- break
143
152
  }
144
- logger.info("uploaded: ", pgs.lzc_image)
153
+ if (!useCI) {
154
+ refreshProgress(layers)
155
+ process.stdout.write("\n")
156
+ _logger.info("uploaded: ", pgs.lzc_image)
157
+ } else {
158
+ // 日志级别为 quiet 时仅输出结果(用于 CI 目的)
159
+ console.log(pgs.lzc_image)
160
+ }
145
161
  break
146
162
  }
147
163
  layers = pgs?.layers
148
164
  refreshProgress(layers)
149
165
  await sleep(1000)
150
166
  } else {
151
- logger.error("error: ", await resp.text())
152
- break
167
+ throw Error(`error: ${await resp.text()}`)
153
168
  }
154
169
  }
155
170
  } catch (err) {
156
- console.error(err)
171
+ _logger.error(err?.message ?? "unknown exception")
157
172
  }
158
173
  }
159
174
  },
package/lib/config/env.js CHANGED
@@ -4,6 +4,8 @@ import { ensureDir } from "../utils.js"
4
4
  import logger from "loglevel"
5
5
  import os from "node:os"
6
6
 
7
+ const _SYSTEM_ENV_PREFIX = "LZC_CLI_"
8
+
7
9
  export const GLOBAL_CONFIG_DIR = path.join(
8
10
  os.homedir(),
9
11
  "/.config/lazycat/box-config.json"
@@ -23,6 +25,11 @@ class Env {
23
25
  }
24
26
 
25
27
  get(key) {
28
+ // 优先通过环境变量获取 (支持 CI/CD)
29
+ const _env_key = `${_SYSTEM_ENV_PREFIX}${(key ?? "").toUpperCase()}`
30
+ if (process.env[_env_key]) {
31
+ return process.env[_env_key]
32
+ }
26
33
  return this.allEnv[key]
27
34
  }
28
35
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lazycatcloud/lzc-cli",
3
- "version": "1.3.10",
3
+ "version": "1.3.11",
4
4
  "description": "lazycat cloud developer kit",
5
5
  "scripts": {
6
6
  "release": "release-it patch",