1 个不稳定版本

0.1.0 2022 年 5 月 21 日

#2947解析器实现

MIT 许可证

9KB
153

SemVerq

SemVerq 是一个 CLI 工具,用于

  • 验证 SemVer 格式
  • 访问 SemVer 结构
  • 将 SemVer 转换为 JSON

功能

验证

对于 -i 选项,semverq 验证输入字符串是否为 SemVer。

$ semverq -i '1.2.3-beta+dev-armhf'
(nothing is output)
$ echo $?
0
$ semverq -i '1.2.3-beta+dev+armhf'
invalid format as semver: 1.2.3-beta+dev+armhf
$ echo $?
150

如果没有指定 - 选项,semverq 从标准输入读取字符串。

$ semverq <<<'1.2.3-input+stdin'
$ echo $?
0

转换为 JSON

对于 - 选项,semverq 将输入转换为 JSON。

$ semverq -j -i '1.2.3-beta+36a1d2f'
{
  "major": 1,
  "minor": 2,
  "patch": 3,
  "pre-release": "beta",
  "build": "36a1d2f"
}

如果不存在 预发布构建,则其字段的值将为 null

$ semverq -j -i '1.2.3'
{
  "major": 1,
  "minor": 2,
  "patch": 3,
  "pre-release": null,
  "build": null
}

访问部分

对于 - 选项,访问 SemVer 部分。

仅获取主版本

$ semverq -q '.major' -i '1.2.3-beta+36a1d2f'
1

构建一个包含 预发布构建 的 JSON 对象

$ semverq -q '{ "pre-release": ".pre-release", "build": ".build" }' -i '1.2.3-beta+36a1d2f'
{ "pre-release": "beta", "build": "36a1d2f" }

访问器

支持以下访问器

  • .major 主版本。
  • .minor 次版本。
  • .patch 补丁版本。
  • .pre-release.pre 预发布版本。
  • .build 构建元数据。
  • .version-core 简写为 .major..minor..patch

匹配检查

对于 - 选项,semverq 检查与给定要求的匹配。该要求由逗号分隔的版本约束构成。此匹配语法和规则与 Rust 的包系统 中的相同。

匹配情况

$ semverq -m '>1.2.1, <=2.0.0' -i '1.2.3'
$ echo $?
0

不匹配情况

$ semverq -m '^1.2.1, 1.3.*' -i '1.2.3-beta+dev-armhf'
Version (1.2.3-beta+dev-armhf) does not match that requirement (^1.2.1, 1.3.*).
$ echo $?
152

无效要求

$ semverq -m '>1.2.1, <=2.0.0.' -i '1.2.3'
invalid format as version requirement: >1.2.1, <=2.0.0.
$ echo $?
151

依赖关系

~4.5–6.5MB
~115K SLoC