8 个版本
新 0.1.3 | 2024 年 8 月 21 日 |
---|---|
0.1.1 | 2023 年 12 月 14 日 |
0.1.0 | 2023 年 3 月 20 日 |
0.0.4 | 2022 年 12 月 21 日 |
0.0.1 | 2022 年 6 月 3 日 |
56 在 命令行工具 中排名
每月 124 次下载
270KB
6K SLoC
用于管理 Pact 插件的 CLI
该项目提供了一个命令行界面来管理和安装 Pact 插件。它是一个单个的可执行二进制文件。
命令行界面
在不提供任何选项的情况下运行 pact-plugin-cli
将显示标准帮助信息。
$ pact-plugin-cli
CLI utility for Pact plugins
Usage: pact-plugin-cli [OPTIONS] <COMMAND>
Commands:
list List installed plugins
env Print out the Pact plugin environment config
install Install a plugin
remove Remove a plugin
enable Enable a plugin version
disable Disable a plugin version
help Print this message or the help of the given subcommand(s)
Options:
-y, --yes Automatically answer Yes for all prompts
-d, --debug Enable debug level logs
-t, --trace Enable trace level logs
-v, --version Print CLI version
-h, --help Print help
显示环境配置
env
命令将显示正在使用的任何环境配置。
$ pact-plugin-cli env
┌──────────────────┬─────────────────────┬────────────────────────────┐
│ Configuration ┆ Source ┆ Value │
╞══════════════════╪═════════════════════╪════════════════════════════╡
│ Plugin Directory ┆ $HOME/.pact/plugins ┆ /home/ronald/.pact/plugins │
└──────────────────┴─────────────────────┴────────────────────────────┘
列出已安装的插件
运行 list
命令将列出已安装的插件。
$ pact-plugin-cli list
┌──────────┬─────────┬───────────────────┬───────────────────────────────────────────┬─────────┐
│ Name ┆ Version ┆ Interface Version ┆ Directory ┆ Status │
╞══════════╪═════════╪═══════════════════╪═══════════════════════════════════════════╪═════════╡
│ csv ┆ 0.0.1 ┆ 1 ┆ /home/ronald/.pact/plugins/csv-0.0.1 ┆ enabled │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ protobuf ┆ 0.1.7 ┆ 1 ┆ /home/ronald/.pact/plugins/protobuf-0.1.7 ┆ enabled │
└──────────┴─────────┴───────────────────┴───────────────────────────────────────────┴─────────┘
启用和禁用插件版本
disable
命令将禁用插件的一个版本,而 enable
命令将再次启用它。
$ pact-plugin-cli enable --help
Enable a plugin version
Usage: pact-plugin-cli enable <NAME> [VERSION]
Arguments:
<NAME> Plugin name
[VERSION] Plugin version. Not required if there is only one plugin version
Options:
-h, --help Print help
它需要插件名称和版本。如果只有一个版本,则可以省略版本值。
删除插件版本
可以使用 remove
命令删除特定版本的插件。它需要插件名称和版本。如果只有一个版本,则可以省略版本值。
$ pact-plugin-cli remove --help
Remove a plugin
Usage: pact-plugin-cli remove [OPTIONS] <NAME> [VERSION]
Arguments:
<NAME> Plugin name
[VERSION] Plugin version. Not required if there is only one plugin version
Options:
-y, --yes Automatically answer Yes for all prompts
-h, --help Print help
这将提示确认删除插件,但可以使用 -y, -yes
选项来覆盖。
$ pact-plugin-cli -y remove csv
Removed plugin with name 'csv' and version '0.0.1'
安装插件
install
命令可以从 GitHub 发布页面下载并安装插件。它将确定所需的正确操作系统和架构。如果下载文件有 SHA256 校验和,它还会将校验和与下载的文件进行比较。
$ pact-plugin-cli install --help
Install a plugin
A plugin can be either installed from a URL, or for a known plugin, by name (and optionally version).
Usage: pact-plugin-cli install [OPTIONS] <SOURCE>
Arguments:
<SOURCE>
Where to fetch the plugin files from. This should be a URL or the name of a known plugin
Options:
-t, --source-type <SOURCE_TYPE>
The type of source to fetch the plugin files from. Will default to Github releases.
Valid values: github
-y, --yes
Automatically answer Yes for all prompts
-s, --skip-if-installed
Skip installing the plugin if the same version is already installed
-v, --version <VERSION>
The version to install. This is only used for known plugins
--skip-load
Skip auto-loading of plugin
[env: PACT_PLUGIN_CLI_SKIP_LOAD=]
-h, --help
Print help (see a summary with '-h')
您可以指定发布版本,或者使用最新链接下载最新版本。例如,对于 Protobuf 插件,https://github.com/pactflow/pact-protobuf-plugin/releases/tag/v-0.1.7 将安装版本 0.1.7,而 https://github.com/pactflow/pact-protobuf-plugin/releases/latest 将安装最新版本。
如果插件版本已安装,它将提示先删除现有的版本。这可以用 -y, -yes
选项来覆盖。
如果插件版本已经安装,要跳过安装,请使用 -s, --skip-if-installed
选项。
安装 CSV 插件的示例
$ pact-plugin-cli -y install https://github.com/pact-foundation/pact-plugins/releases/tag/csv-plugin-0.0.1
Installing plugin csv version 0.0.1
Downloaded https://github.com/pact-foundation/pact-plugins/releases/download/csv-plugin-0.0.1/pact-csv-plugin-linux-x86_64.gz to /home/ronald/.pact/plugins/csv-0.0.1/pact-csv-plugin-linux-x86_64.gz
[00:00:03] [#######################################################################################################################################################################] 3.43MiB/3.43MiB (973.64KiB/s, 0s)
Downloaded https://github.com/pact-foundation/pact-plugins/releases/download/csv-plugin-0.0.1/pact-csv-plugin-linux-x86_64.gz.sha256 to /home/ronald/.pact/plugins/csv-0.0.1/pact-csv-plugin-linux-x86_64.gz.sha256
[00:00:00] [#############################################################################################################################################################################] 115B/115B (185.98KiB/s, 0s)
Installed plugin csv version 0.0.1 OK
安装
CLI 可执行文件可以从 GitHub 发布页面下载(例如,https://github.com/pact-foundation/pact-plugins/releases/tag/pact-plugin-cli-v0.0.0)。每个主要操作系统和架构将有一个文件。只需解压(使用 gunzip)并在 Unix 上使其可执行即可。
❯ wget https://github.com/pact-foundation/pact-plugins/releases/download/pact-plugin-cli-v0.0.0/pact-plugin-cli-linux-x86_64.gz
--2022-06-03 13:45:17-- https://github.com/pact-foundation/pact-plugins/releases/download/pact-plugin-cli-v0.0.0/pact-plugin-cli-linux-x86_64.gz
Resolving github.com (github.com)... 52.64.108.95
Connecting to github.com (github.com)|52.64.108.95|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/388319964/c0202f1f-b189-4e75-b45b-9d43acf1c632?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220603%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220603T034441Z&X-Amz-Expires=300&X-Amz-Signature=3a5c7f7a54288897a0f89c2c186e16da08cfcc6969c90f4f5535d4fc2dd0f68a&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=388319964&response-content-disposition=attachment%3B%20filename%3Dpact-plugin-cli-linux-x86_64.gz&response-content-type=application%2Foctet-stream [following]
--2022-06-03 13:45:17-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/388319964/c0202f1f-b189-4e75-b45b-9d43acf1c632?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220603%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220603T034441Z&X-Amz-Expires=300&X-Amz-Signature=3a5c7f7a54288897a0f89c2c186e16da08cfcc6969c90f4f5535d4fc2dd0f68a&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=388319964&response-content-disposition=attachment%3B%20filename%3Dpact-plugin-cli-linux-x86_64.gz&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.108.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6186448 (5.9M) [application/octet-stream]
Saving to: ‘pact-plugin-cli-linux-x86_64.gz’
pact-plugin-cli-linux-x86_64.gz 100%[=======================================================================================================================================>] 5.90M 3.89MB/s in 1.5s
2022-06-03 13:45:19 (3.89 MB/s) - ‘pact-plugin-cli-linux-x86_64.gz’ saved [6186448/6186448]
❯ gunzip pact-plugin-cli-linux-x86_64.gz
❯ chmod +x pact-plugin-cli-linux-x86_64
❯ ./pact-plugin-cli-linux-x86_64
pact-plugin-cli 0.0.0
CLI utility for Pact plugins
USAGE:
pact-plugin-cli-linux-x86_64 [OPTIONS] <SUBCOMMAND>
OPTIONS:
-d, --debug Enable debug level logs
-h, --help Print help information
-V, --version Print version information
-y, --yes Automatically answer Yes for all prompts
SUBCOMMANDS:
disable Disable a plugin version
enable Enable a plugin version
env Print out the Pact plugin environment config
help Print this message or the help of the given subcommand(s)
install Install a plugin
list List installed plugins
remove Remove a plugin
使用 cargo 安装
也可以使用 Rust Cargo 命令安装可执行文件。
❯ cargo install pact-plugin-cli
构建
可执行文件使用 cargo
构建。
要求
需要 Rust 1.61 或更高版本。
兼容性
支持的平台
操作系统 | 架构 | 支持 | Pact 插件 CLI 版本 |
---|---|---|---|
OSX | x86_64 | ✅ | 所有 |
Linux | x86_64 | ✅ | 所有 |
Windows | x86_64 | ✅ | 所有 |
OSX | arm64 | ✅ | 所有 |
Linux | arm64 | ✅ | >=0.0.4 |
Windows | arm64 | ✅ | >=0.1.2 |
Alpine | x86_64 | ✅ | >=0.1.2 |
Alpine | arm64 | ✅ | >=0.1.2 |
注意: 从 v0.1.2 开始,Linux 可执行文件使用 musl
静态构建,并设计为与基于 glibc
(例如,Debian)和 musl
(例如,Alpine)的发行版兼容。
依赖项
~32–69MB
~1M SLoC