#sbom #json-format #command-line #omnibor #gitbom

app omnibor-cli

用于处理 OmniBOR 标识符和清单的 CLI 工具

1 个不稳定版本

0.6.0 2024 年 3 月 8 日

加密学 中排名第 1049

Apache-2.0

87KB
1.5K SLoC

omnibor-cli

此软件包定义了一个 OmniBOR 命令行界面,旨在简化 OmniBOR 标识符和清单的生成和处理。

[!注意] 目前此项目还在开发中。今天的 omnibor CLI 只支持处理标识符,而不支持清单。

安装

OmniBOR CLI 为多个平台提供了预构建的二进制文件。查看最新的发布说明,以获取以下平台的安装程序:

  • Apple Silicon macOS
  • Intel macOS
  • x64 Windows
  • x64 Linux
  • x64 MUSL Linux

Axo 的团队表示衷心的感谢,他们制作的 cargo-dist 使生成这些二进制文件变得极其容易。

您还可以尝试使用 cargo-binstall 进行安装,尽管我们还没有对其进行过测试。

如果您想从源代码构建,并且您有一个足够新的 Rust 工具链,您可以使用:

  • 运行 cargo install omnibor-cli
  • 检出此存储库并运行 cargo install --path omnibor-cli

我们目前没有承诺最小支持的 Rust 版本(MSRV),通常跟踪稳定版本。这可能在将来发生变化。

示例

id 使用纯格式
$ omnibor id Cargo.toml
# Cargo.toml => gitoid:blob:sha256:c54d66281dea2bf213083f9bd3345d89dc6657fa554b1c9ef14cfe4bab14893f
id 使用 JSON 格式
$ omnibor id Cargo.toml -f json
# {"id":"gitoid:blob:sha256:c54d66281dea2bf213083f9bd3345d89dc6657fa554b1c9ef14cfe4bab14893f","path":"Cargo.toml"}
id 使用简短格式
$ omnibor id Cargo.toml -f short
# gitoid:blob:sha256:c54d66281dea2bf213083f9bd3345d89dc6657fa554b1c9ef14cfe4bab14893f
find 使用纯格式
$ omnibor find gitoid:blob:sha256:c54d66281dea2bf213083f9bd3345d89dc6657fa554b1c9ef14cfe4bab14893f .
# gitoid:blob:sha256:c54d66281dea2bf213083f9bd3345d89dc6657fa554b1c9ef14cfe4bab14893f => ./Cargo.toml
find 使用 JSON 格式
$ omnibor find gitoid:blob:sha256:c54d66281dea2bf213083f9bd3345d89dc6657fa554b1c9ef14cfe4bab14893f . -f json
# {"id":"gitoid:blob:sha256:c54d66281dea2bf213083f9bd3345d89dc6657fa554b1c9ef14cfe4bab14893f","path":"./Cargo.toml"}
find 使用简短格式
$ omnibor find gitoid:blob:sha256:c54d66281dea2bf213083f9bd3345d89dc6657fa554b1c9ef14cfe4bab14893f . -f short
# ./Cargo.toml

用法

omnibor--help
Usage: omnibor [OPTIONS] <COMMAND>

Commands:
  id    For files, prints their Artifact ID. For directories, recursively prints IDs for all files under it
  find  Find file matching an Artifact ID
  help  Print this message or the help of the given subcommand(s)

Options:
  -b, --buffer <BUFFER>  How many print messages to buffer at one time, tunes printing perf
  -h, --help             Print help
  -V, --version          Print version
omnibor id--help
For files, prints their Artifact ID. For directories, recursively prints IDs for all files under it

Usage: omnibor id [OPTIONS] <PATH>

Arguments:
  <PATH>  Path to identify

Options:
  -f, --format <FORMAT>  Output format (can be "plain", "short", or "json") [default: plain]
  -H, --hash <HASH>      Hash algorithm (can be "sha256") [default: sha256]
  -h, --help             Print help
omnibor find--help
Find file matching an Artifact ID

Usage: omnibor find [OPTIONS] <URL> <PATH>

Arguments:
  <URL>   `gitoid` URL to match
  <PATH>  The root path to search under

Options:
  -f, --format <FORMAT>  Output format (can be "plain", "short", or "json") [default: plain]
  -h, --help             Print help

输出格式

两者 idfind 子命令都支持一个 -f/--format 标志,可以是以下任何一个:

  • plain(默认):一种简单的可读格式,将路径和标识符映射,用粗箭头(=>)分隔。
  • short:只打印要搜索的内容(对于 id 命令,是一个工件标识符;对于 find 命令,是一个文件系统路径)。
  • json:打印一个包含 pathid 字符串类型字段的 JSON 对象。

建议使用 short 格式进行管道或重定向到其他命令。

建议使用 json 格式进行更结构化的上下文,并且可以传递给 jq 进行操作。

许可证

OmniBOR CLI 源代码采用 Apache-2.0 许可证。

依赖关系

~7–9.5MB
~184K SLoC