diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml index f86045f..13a7896 100644 --- a/.github/workflows/cli.yml +++ b/.github/workflows/cli.yml @@ -32,10 +32,9 @@ jobs: - name: Show help commands run: | - pact-cli --help - pact-cli pactflow --help + pact --help - - name: Run pact-broker commands + - name: Run pactbroker commands shell: bash run: ./run.sh env: diff --git a/.github/workflows/reusable-build.yml b/.github/workflows/reusable-build.yml index 86570c4..fb38b4d 100644 --- a/.github/workflows/reusable-build.yml +++ b/.github/workflows/reusable-build.yml @@ -83,14 +83,14 @@ jobs: shell: bash env: PACT_BROKER_BASE_URL: http://localhost:9292 - BIN: target/${{ inputs.target }}/release/pact-cli + BIN: target/${{ inputs.target }}/release/pact - name: test pact-cli with locally running Pact Broker (Windows) if: ${{ runner.os == 'Windows' && inputs.target != 'aarch64-pc-windows-msvc' }} run: ./run.ps1 shell: pwsh env: PACT_BROKER_BASE_URL: http://localhost:9292 - BIN: target/${{ inputs.target }}/release/pact-cli.exe + BIN: target/${{ inputs.target }}/release/pact.exe - name: Create dist id: dist shell: bash diff --git a/Cargo.toml b/Cargo.toml index bdb7cff..b4764aa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -68,9 +68,9 @@ indexmap = { version = "1.9.3", features = ["std"] } # [lib] -# name = "pact-cli" # Name of the library +# name = "pact" # Name of the library # crate-type = ["cdylib", "staticlib"] # For compiling to a shared library [[bin]] -name = "pact-cli" +name = "pact" path = "src/bin.rs" diff --git a/Makefile b/Makefile index 368e85a..26bfb84 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ SHELL := /bin/bash TARGET= USE_CROSS= -BINARY_NAME?=pact-cli +BINARY_NAME?=pact SLIM=false BUILDER=cargo diff --git a/README.md b/README.md index 0e63841..626600f 100644 --- a/README.md +++ b/README.md @@ -91,8 +91,7 @@ Example - name: Show help commands run: | - pact-cli --help - pact-cli pactflow --help + pact --help ``` ### Docker @@ -116,13 +115,13 @@ tags format ### All commands ```console -$ pact-cli --help +$ pact --help Pact consolidated CLI - pact_core_mock_server, pact_verifier, pact-stub-server, pact-plugin-cli, pact-broker-cli in a single binary -Usage: pact-cli [OPTIONS] [COMMAND] +Usage: pact [OPTIONS] [COMMAND] Commands: - pact-broker A Rust and CLI client for the Pact Broker. Publish and retrieve pacts and verification results. + broker A Rust and CLI client for the Pact Broker. Publish and retrieve pacts and verification results. pactflow PactFlow specific commands completions Generates completion scripts for your shell plugin CLI utility for Pact plugins @@ -137,13 +136,13 @@ Options: ``` -### `pact-broker` +### `broker` ```console -$ pact-cli pact-broker --help +$ pact broker --help A Rust and CLI client for the Pact Broker. Publish and retrieve pacts and verification results. -Usage: pact-cli pact-broker [OPTIONS] [COMMAND] +Usage: pact broker [OPTIONS] [COMMAND] Commands: publish Publishes pacts to the Pact Broker @@ -185,10 +184,10 @@ Options: ### `pactflow` ```console -$ pact-cli pactflow --help +$ pact pactflow --help PactFlow specific commands -Usage: pact-cli pactflow [OPTIONS] [COMMAND] +Usage: pact pactflow [OPTIONS] [COMMAND] Commands: publish-provider-contract Publish provider contract to PactFlow @@ -203,10 +202,10 @@ Options: ### `plugin` ```console -$ pact-cli plugin --help +$ pact plugin --help CLI utility for Pact plugins -Usage: pact-cli plugin [OPTIONS] +Usage: pact plugin [OPTIONS] Commands: list List installed or available plugins @@ -231,10 +230,10 @@ Options: ### `mock` ```console -$ pact-cli mock --help +$ pact mock --help Standalone Pact mock server -Usage: pact-cli mock [OPTIONS] [COMMAND] +Usage: pact mock [OPTIONS] [COMMAND] Commands: start Starts the master mock server @@ -260,10 +259,10 @@ Options: ### `verifier` ```console -$ pact-cli verifier --help +$ pact verifier --help Standalone pact verifier for provider pact verification -Usage: pact-cli verifier [OPTIONS] +Usage: pact verifier [OPTIONS] Options: --help Print help and exit @@ -367,10 +366,10 @@ Development options: ### `stub` ```console -$ pact-cli stub --help +$ pact stub --help Pact Stub Server 0.6.3 -Usage: pact-cli stub [OPTIONS] +Usage: pact stub [OPTIONS] Options: -l, --loglevel diff --git a/cbindgen.toml b/cbindgen.toml index 3627ec8..2531627 100644 --- a/cbindgen.toml +++ b/cbindgen.toml @@ -66,4 +66,4 @@ prefix_with_name = true # [parse.expand] # # Expand macros for `pact_matching_ffi`. -# crates = ["pact-cli_ffi"] \ No newline at end of file +# crates = ["pact_cli_ffi"] \ No newline at end of file diff --git a/docker/Dockerfile.alpine b/docker/Dockerfile.alpine index 0cfdc29..49f94a1 100644 --- a/docker/Dockerfile.alpine +++ b/docker/Dockerfile.alpine @@ -7,34 +7,34 @@ ARG VERSION=0.0.9 RUN if [ "$TARGETARCH" = "amd64" ]; then \ BIN_ARCH="x86_64"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-musl; \ + BIN_FILE=pact-${BIN_ARCH}-linux-musl; \ elif [ "$TARGETARCH" = "386" ] || [ "$TARGETARCH" = "586" ] || [ "$TARGETARCH" = "686" ]; then \ BIN_ARCH="i686"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-musl; \ + BIN_FILE=pact-${BIN_ARCH}-linux-musl; \ elif [ "$TARGETARCH" = "arm64" ]; then \ BIN_ARCH="aarch64"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-musl; \ + BIN_FILE=pact-${BIN_ARCH}-linux-musl; \ elif [ "$TARGETARCH" = "s390x" ]; then \ BIN_ARCH="s390x"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-gnu; \ + BIN_FILE=pact-${BIN_ARCH}-linux-gnu; \ apk add --no-cache wget; \ elif [ "$TARGETARCH" = "riscv64" ]; then \ BIN_ARCH="riscv64gc"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-gnu; \ + BIN_FILE=pact-${BIN_ARCH}-linux-gnu; \ elif [ "$TARGETARCH" = "arm" ]; then \ echo ${TARGETVARIANT}; \ if [ "$TARGETVARIANT" = "v8" ]; then \ BIN_ARCH="arm"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-musleabi; \ + BIN_FILE=pact-${BIN_ARCH}-linux-musleabi; \ elif [ "$TARGETVARIANT" = "v7" ]; then \ BIN_ARCH="armv7"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-musleabi; \ + BIN_FILE=pact-${BIN_ARCH}-linux-musleabi; \ elif [ "$TARGETVARIANT" = "v6" ]; then \ BIN_ARCH="arm"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-musleabihf; \ + BIN_FILE=pact-${BIN_ARCH}-linux-musleabihf; \ elif [ "$TARGETVARIANT" = "v5" ]; then \ BIN_ARCH="armv5te"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-musleabi; \ + BIN_FILE=pact-${BIN_ARCH}-linux-musleabi; \ else \ echo "Invalid TARGETVARIANT: ${TARGETVARIANT}"; \ exit 1; \ @@ -43,12 +43,12 @@ RUN if [ "$TARGETARCH" = "amd64" ]; then \ echo "Invalid TARGETARCH: ${TARGETARCH}"; \ exit 1; \ fi \ - && wget -O pact-cli https://github.com/you54f/pact-cli/releases/download/v${VERSION}/${BIN_FILE} && \ - chmod +x pact-cli + && wget -O pact https://github.com/you54f/pact/releases/download/v${VERSION}/${BIN_FILE} && \ + chmod +x pact FROM --platform=linux/${TARGETARCH}${TARGETVARIANT:+/${TARGETVARIANT}} ${BASE_IMAGE} WORKDIR /app -COPY --from=builder /pact-cli /app/ +COPY --from=builder /pact /app/ EXPOSE 8080 -ENTRYPOINT ["./pact-cli"] +ENTRYPOINT ["./pact"] CMD ["--help"] \ No newline at end of file diff --git a/docker/Dockerfile.debian b/docker/Dockerfile.debian index daec975..0cce171 100644 --- a/docker/Dockerfile.debian +++ b/docker/Dockerfile.debian @@ -8,33 +8,33 @@ ARG VERSION=0.0.9 RUN apt-get update && apt-get install -y wget RUN if [ "$TARGETARCH" = "amd64" ]; then \ BIN_ARCH="x86_64"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-musl; \ + BIN_FILE=pact-${BIN_ARCH}-linux-musl; \ elif [ "$TARGETARCH" = "386" ] || [ "$TARGETARCH" = "586" ] || [ "$TARGETARCH" = "686" ]; then \ BIN_ARCH="i686"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-musl; \ + BIN_FILE=pact-${BIN_ARCH}-linux-musl; \ elif [ "$TARGETARCH" = "arm64" ]; then \ BIN_ARCH="aarch64"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-musl; \ + BIN_FILE=pact-${BIN_ARCH}-linux-musl; \ elif [ "$TARGETARCH" = "s390x" ]; then \ BIN_ARCH="s390x"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-gnu; \ + BIN_FILE=pact-${BIN_ARCH}-linux-gnu; \ elif [ "$TARGETARCH" = "riscv64" ]; then \ BIN_ARCH="riscv64gc"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-gnu; \ + BIN_FILE=pact-${BIN_ARCH}-linux-gnu; \ elif [ "$TARGETARCH" = "arm" ]; then \ echo ${TARGETVARIANT}; \ if [ "$TARGETVARIANT" = "v8" ]; then \ BIN_ARCH="arm"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-musleabi; \ + BIN_FILE=pact-${BIN_ARCH}-linux-musleabi; \ elif [ "$TARGETVARIANT" = "v7" ]; then \ BIN_ARCH="armv7"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-musleabi; \ + BIN_FILE=pact-${BIN_ARCH}-linux-musleabi; \ elif [ "$TARGETVARIANT" = "v6" ]; then \ BIN_ARCH="arm"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-musleabihf; \ + BIN_FILE=pact-${BIN_ARCH}-linux-musleabihf; \ elif [ "$TARGETVARIANT" = "v5" ]; then \ BIN_ARCH="armv5te"; \ - BIN_FILE=pact-cli-${BIN_ARCH}-linux-musleabi; \ + BIN_FILE=pact-${BIN_ARCH}-linux-musleabi; \ else \ echo "Invalid TARGETVARIANT: ${TARGETVARIANT}"; \ exit 1; \ @@ -43,12 +43,12 @@ RUN if [ "$TARGETARCH" = "amd64" ]; then \ echo "Invalid TARGETARCH: ${TARGETARCH}"; \ exit 1; \ fi \ - && wget -O pact-cli https://github.com/you54f/pact-cli/releases/download/v${VERSION}/${BIN_FILE} && \ - chmod +x pact-cli + && wget -O pact https://github.com/you54f/pact-cli/releases/download/v${VERSION}/${BIN_FILE} && \ + chmod +x pact FROM --platform=linux/${TARGETARCH}${TARGETVARIANT:+/${TARGETVARIANT}} ${BASE_IMAGE} WORKDIR /app -COPY --from=builder /pact-cli /app/ +COPY --from=builder /pact /app/ EXPOSE 8080 -ENTRYPOINT ["./pact-cli"] +ENTRYPOINT ["./pact"] CMD ["--help"] \ No newline at end of file diff --git a/docker/NOTES.md b/docker/NOTES.md index b36c532..cb4277d 100644 --- a/docker/NOTES.md +++ b/docker/NOTES.md @@ -2,13 +2,13 @@ build a single arch image ```sh -docker buildx build -t you54f/pact-cli:$DOCKER_TAG-alpine --build-arg VERSION=$DOCKER_TAG --platform linux/arm . -f Dockerfile.alpine --load +docker buildx build -t you54f/pact:$DOCKER_TAG-alpine --build-arg VERSION=$DOCKER_TAG --platform linux/arm . -f Dockerfile.alpine --load ``` Run the image ```sh -docker run --platform=linux/arm -p 8080:8080 --rm --init you54f/pact-cli:0.0.9-alpine mock start +docker run --platform=linux/arm -p 8080:8080 --rm --init you54f/pact:0.0.9-alpine mock start ``` Docker multi arch available args diff --git a/docker/README.md b/docker/README.md index b62a649..32cfbc5 100644 --- a/docker/README.md +++ b/docker/README.md @@ -3,7 +3,7 @@ To build a single architecture docker image (change the version as required): ```shell -> docker build -t pactfoundation/pact-cli:0.6.0 --build-arg VERSION=0.6.0 . +> docker build -t pactfoundation/pact:0.6.0 --build-arg VERSION=0.6.0 . ``` To build a multi-architecture docker image: @@ -20,14 +20,14 @@ Build images ```shell export DOCKER_TAG=0.6.0 -docker buildx build -t you54f/pact-cli:$DOCKER_TAG --build-arg VERSION=$DOCKER_TAG --platform linux/amd64,linux/arm64 . -docker buildx build -t you54f/pact-cli:latest --build-arg VERSION=$DOCKER_TAG --platform linux/amd64,linux/arm64 . +docker buildx build -t you54f/pact:$DOCKER_TAG --build-arg VERSION=$DOCKER_TAG --platform linux/amd64,linux/arm64 . +docker buildx build -t you54f/pact:latest --build-arg VERSION=$DOCKER_TAG --platform linux/amd64,linux/arm64 . ``` Build & Push images - will use cached images if available ```shell export DOCKER_TAG=0.6.0 -docker buildx build -t you54f/pact-cli:$DOCKER_TAG --build-arg VERSION=$DOCKER_TAG --platform linux/amd64,linux/arm64 --push . -docker buildx build -t you54f/pact-cli:latest --build-arg VERSION=$DOCKER_TAG --platform linux/amd64,linux/arm64 --push . +docker buildx build -t you54f/pact:$DOCKER_TAG --build-arg VERSION=$DOCKER_TAG --platform linux/amd64,linux/arm64 --push . +docker buildx build -t you54f/pact:latest --build-arg VERSION=$DOCKER_TAG --platform linux/amd64,linux/arm64 --push . ``` \ No newline at end of file diff --git a/docker/test b/docker/test index 11a19cc..c842e6f 100755 --- a/docker/test +++ b/docker/test @@ -7,7 +7,7 @@ platforms=("linux/amd64" "linux/arm64") for platform in "${platforms[@]}" do - image="${1:-you54f/pact-cli}" + image="${1:-you54f/pact}" tag="${2:-latest}" echo "Running $image:$tag on $platform" docker run --rm --platform "$platform" "$image:$tag" diff --git a/install.ps1 b/install.ps1 index 6ef9ba7..4fea3b2 100644 --- a/install.ps1 +++ b/install.ps1 @@ -16,22 +16,22 @@ if ($architecture -eq "x64") { Write-Host "Unsupported architecture: $architecture" exit 1 } -$url = "https://github.com/you54f/pact-cli/releases/download/$tag/pact-cli-$architecture-windows-msvc.exe" +$url = "https://github.com/you54f/pact-cli/releases/download/$tag/pact-$architecture-windows-msvc.exe" Write-Host "Downloading $url to $pactDir" -$exe = Join-Path $pactDir "pact-cli.exe" +$exe = Join-Path $pactDir "pact.exe" if (Test-Path "$exe") { Remove-Item $exe } $downloader = new-object System.Net.WebClient $downloader.DownloadFile($url, $exe) -Write-Host "--> Downloaded pact-cli to $exe" -# Write-Host "--> Setting executable permissions for pact-cli" +Write-Host "--> Downloaded pact to $exe" +# Write-Host "--> Setting executable permissions for pact" # chmod +x $exe -Write-Host "--> Adding pact-cli to path" +Write-Host "--> Adding pact to path" $pactBinariesPath = "$pactDir" $env:PATH += ";$pactBinariesPath" Write-Host $env:PATH -pact-cli.exe --help \ No newline at end of file +pact.exe --help \ No newline at end of file diff --git a/install.sh b/install.sh index 598ebc4..5b25827 100755 --- a/install.sh +++ b/install.sh @@ -104,20 +104,20 @@ esac case $os in *'windows'*) - filename="pact-cli-${os}.exe" + filename="pact-${os}.exe" ;; *'macos'* | *'linux'*) - filename="pact-cli-${os}" + filename="pact-${os}" ;; esac -PROJECT_NAME=pact-cli +PROJECT_NAME=pact echo echo "-------------" echo "Downloading ${filename} - version ${PACT_CLI_VERSION}" echo "-------------" echo "Url: https://github.com/you54f/pact-cli/releases/download/${PACT_CLI_VERSION}/${filename}" -($downloader https://github.com/you54f/pact-cli/releases/download/"${PACT_CLI_VERSION}"/"${filename}" && echo downloaded "${filename}") || (echo "Failed to download pact-cli, check the version and url." && exit 1) +($downloader https://github.com/you54f/pact-cli/releases/download/"${PACT_CLI_VERSION}"/"${filename}" && echo downloaded "${filename}") || (echo "Failed to download pact, check the version and url." && exit 1) echo "$PROJECT_NAME ${PACT_CLI_VERSION} installed to $(pwd)" echo "-------------------" echo "available commands:" @@ -130,7 +130,7 @@ else mv "$filename" "$PROJECT_NAME" chmod +x "$PROJECT_NAME" fi -./pact-cli --help +./pact --help echo "-------------------" if [ "$GITHUB_ENV" ]; then echo "Added the following to your path to make ${PROJECT_NAME} available:" diff --git a/prep_dist.sh b/prep_dist.sh index f492dc9..2a9a035 100755 --- a/prep_dist.sh +++ b/prep_dist.sh @@ -6,7 +6,7 @@ if [ -z "$1" ]; then fi TARGET=$1 -BINARY_NAME="pact-cli" +BINARY_NAME="pact" OUTPUT_DIR="dist" while [[ $# -gt 0 ]]; do diff --git a/run.ps1 b/run.ps1 index 17319c8..6355347 100755 --- a/run.ps1 +++ b/run.ps1 @@ -2,13 +2,13 @@ $ErrorActionPreference = "Stop" $BIN = $env:BIN -if (-not $BIN) { $BIN = "pact-cli" } +if (-not $BIN) { $BIN = "pact" } & $BIN --help -& $BIN pact-broker --help +& $BIN broker --help & $BIN pactflow --help & $BIN completions --help -& $BIN 'pact-broker' docker --help +& $BIN 'broker' docker --help & $BIN plugin --help & $BIN plugin list --help & $BIN plugin list installed --help @@ -38,26 +38,26 @@ if (-not $BIN) { $BIN = "pact-cli" } & $BIN mock shutdown --help & $BIN mock shutdown-master --help -try { & $BIN 'pact-broker' ruby stop } catch {} +try { & $BIN 'broker' ruby stop } catch {} -& $BIN 'pact-broker' ruby start -d -& $BIN 'pact-broker' ruby info -& $BIN 'pact-broker' list-latest-pact-versions -& $BIN 'pact-broker' create-environment --name name_foo1 -& $BIN 'pact-broker' create-environment --name name_foo2 --display-name display_name_foo -& $BIN 'pact-broker' create-environment --name name_foo3 --display-name display_name_foo --contact-name contact_name_foo -& $BIN 'pact-broker' create-environment --name name_foo4 --display-name display_name_foo --contact-name contact_name_foo --contact-email-address contact.email.address@foo.bar +& $BIN 'broker' ruby start -d +& $BIN 'broker' ruby info +& $BIN 'broker' list-latest-pact-versions +& $BIN 'broker' create-environment --name name_foo1 +& $BIN 'broker' create-environment --name name_foo2 --display-name display_name_foo +& $BIN 'broker' create-environment --name name_foo3 --display-name display_name_foo --contact-name contact_name_foo +& $BIN 'broker' create-environment --name name_foo4 --display-name display_name_foo --contact-name contact_name_foo --contact-email-address contact.email.address@foo.bar -$ENV_UUID = (& $BIN 'pact-broker' create-environment --name name_foo5 --output=id).Trim() -& $BIN 'pact-broker' describe-environment --uuid $ENV_UUID -& $BIN 'pact-broker' update-environment --uuid $ENV_UUID --name name_foo6 -& $BIN 'pact-broker' update-environment --uuid $ENV_UUID --name name_foo7 --display-name display_name_foo6 -& $BIN 'pact-broker' update-environment --uuid $ENV_UUID --name name_foo8 --contact-name contact_name_foo8 -& $BIN 'pact-broker' update-environment --uuid $ENV_UUID --name name_foo9 --contact-name contact_name_foo9 --contact-email-address contact_name_foo7 -& $BIN 'pact-broker' delete-environment --uuid $ENV_UUID +$ENV_UUID = (& $BIN 'broker' create-environment --name name_foo5 --output=id).Trim() +& $BIN 'broker' describe-environment --uuid $ENV_UUID +& $BIN 'broker' update-environment --uuid $ENV_UUID --name name_foo6 +& $BIN 'broker' update-environment --uuid $ENV_UUID --name name_foo7 --display-name display_name_foo6 +& $BIN 'broker' update-environment --uuid $ENV_UUID --name name_foo8 --contact-name contact_name_foo8 +& $BIN 'broker' update-environment --uuid $ENV_UUID --name name_foo9 --contact-name contact_name_foo9 --contact-email-address contact_name_foo7 +& $BIN 'broker' delete-environment --uuid $ENV_UUID # Delete all environments except the first and last -$envs = & $BIN 'pact-broker' list-environments +$envs = & $BIN 'broker' list-environments $lines = $envs -split "`n" # Find lines that look like environment rows (start with │ and contain ┆) @@ -69,36 +69,36 @@ $uuids = $envRows | ForEach-Object { } foreach ($uuid in $uuids) { - & $BIN 'pact-broker' delete-environment --uuid $uuid + & $BIN 'broker' delete-environment --uuid $uuid } -& $BIN 'pact-broker' create-environment --name production --production -& $BIN 'pact-broker' publish tests/pacts -r -& $BIN 'pact-broker' publish tests/pacts -a foo --branch bar +& $BIN 'broker' create-environment --name production --production +& $BIN 'broker' publish tests/pacts -r +& $BIN 'broker' publish tests/pacts -a foo --branch bar try { - & $BIN 'pact-broker' can-i-deploy --pacticipant GettingStartedOrderWeb --version foo --to prod + & $BIN 'broker' can-i-deploy --pacticipant GettingStartedOrderWeb --version foo --to prod } catch { Write-Host "can-i-deploy fails due to no verification result - expected" } -& $BIN 'pact-broker' can-i-deploy --pacticipant GettingStartedOrderWeb --version foo --to prod --dry-run -& $BIN 'pact-broker' record-deployment --version foo --environment production --pacticipant GettingStartedOrderWeb -& $BIN 'pact-broker' record-undeployment --environment production --pacticipant GettingStartedOrderWeb -& $BIN 'pact-broker' record-release --version foo --environment production --pacticipant GettingStartedOrderWeb -& $BIN 'pact-broker' record-support-ended --version foo --environment production --pacticipant GettingStartedOrderWeb -& $BIN 'pact-broker' create-or-update-pacticipant --name foo --main-branch main --repository-url http://foo.bar -& $BIN 'pact-broker' describe-pacticipant --name foo -& $BIN 'pact-broker' list-pacticipants -& $BIN 'pact-broker' create-webhook https://localhost --request POST --contract-published +& $BIN 'broker' can-i-deploy --pacticipant GettingStartedOrderWeb --version foo --to prod --dry-run +& $BIN 'broker' record-deployment --version foo --environment production --pacticipant GettingStartedOrderWeb +& $BIN 'broker' record-undeployment --environment production --pacticipant GettingStartedOrderWeb +& $BIN 'broker' record-release --version foo --environment production --pacticipant GettingStartedOrderWeb +& $BIN 'broker' record-support-ended --version foo --environment production --pacticipant GettingStartedOrderWeb +& $BIN 'broker' create-or-update-pacticipant --name foo --main-branch main --repository-url http://foo.bar +& $BIN 'broker' describe-pacticipant --name foo +& $BIN 'broker' list-pacticipants +& $BIN 'broker' create-webhook https://localhost --request POST --contract-published -$WEBHOOK_UUID = (& $BIN 'pact-broker' create-webhook https://localhost --request POST --contract-published | ConvertFrom-Json).uuid -& $BIN 'pact-broker' create-or-update-webhook https://foo.bar --request POST --uuid $WEBHOOK_UUID --provider-verification-succeeded -& $BIN 'pact-broker' test-webhook --uuid $WEBHOOK_UUID -& $BIN 'pact-broker' create-or-update-version --version foo --pacticipant foo --branch bar --tag baz -& $BIN 'pact-broker' create-version-tag --version foo --pacticipant foo --tag bar -& $BIN 'pact-broker' describe-version --pacticipant foo -& $BIN 'pact-broker' can-i-merge --pacticipant foo --version foo -& $BIN 'pact-broker' delete-branch --branch bar --pacticipant foo -& $BIN 'pact-broker' describe-pacticipant --name foo -& $BIN 'pact-broker' generate-uuid +$WEBHOOK_UUID = (& $BIN 'broker' create-webhook https://localhost --request POST --contract-published | ConvertFrom-Json).uuid +& $BIN 'broker' create-or-update-webhook https://foo.bar --request POST --uuid $WEBHOOK_UUID --provider-verification-succeeded +& $BIN 'broker' test-webhook --uuid $WEBHOOK_UUID +& $BIN 'broker' create-or-update-version --version foo --pacticipant foo --branch bar --tag baz +& $BIN 'broker' create-version-tag --version foo --pacticipant foo --tag bar +& $BIN 'broker' describe-version --pacticipant foo +& $BIN 'broker' can-i-merge --pacticipant foo --version foo +& $BIN 'broker' delete-branch --branch bar --pacticipant foo +& $BIN 'broker' describe-pacticipant --name foo +& $BIN 'broker' generate-uuid -& $BIN 'pact-broker' ruby stop +& $BIN 'broker' ruby stop diff --git a/run.sh b/run.sh index da51e03..c3d7696 100755 --- a/run.sh +++ b/run.sh @@ -1,12 +1,12 @@ #!/bin/sh set -e -BIN=${BIN:-pact-cli} +BIN=${BIN:-pact} ${BIN} --help -${BIN} pact-broker --help +${BIN} broker --help ${BIN} pactflow --help ${BIN} completions --help -${BIN} pact-broker docker --help +${BIN} broker docker --help ${BIN} plugin --help ${BIN} plugin list --help ${BIN} plugin list installed --help @@ -36,46 +36,46 @@ ${BIN} mock verify --help ${BIN} mock shutdown --help ${BIN} mock shutdown-master --help -${BIN} pact-broker ruby stop || true -${BIN} pact-broker ruby start -d -${BIN} pact-broker ruby info -${BIN} pact-broker list-latest-pact-versions -${BIN} pact-broker create-environment --name name_foo1 -${BIN} pact-broker create-environment --name name_foo2 --display-name display_name_foo -${BIN} pact-broker create-environment --name name_foo3 --display-name display_name_foo --contact-name contact_name_foo -${BIN} pact-broker create-environment --name name_foo4 --display-name display_name_foo --contact-name contact_name_foo --contact-email-address contact.email.address@foo.bar -export ENV_UUID=$(${BIN} pact-broker create-environment --name name_foo5 --output=id) -${BIN} pact-broker describe-environment --uuid $ENV_UUID -${BIN} pact-broker update-environment --uuid $ENV_UUID --name name_foo6 -${BIN} pact-broker update-environment --uuid $ENV_UUID --name name_foo7 --display-name display_name_foo6 -${BIN} pact-broker update-environment --uuid $ENV_UUID --name name_foo8 --contact-name contact_name_foo8 -${BIN} pact-broker update-environment --uuid $ENV_UUID --name name_foo9 --contact-name contact_name_foo9 --contact-email-address contact_name_foo7 -${BIN} pact-broker delete-environment --uuid $ENV_UUID -${BIN} pact-broker list-environments | awk -F '│' '{print $2}' | sed -n '3,$p' | sed '$d' | awk '{print $1}' | xargs -I {} ${BIN} pact-broker delete-environment --uuid {} -${BIN} pact-broker create-environment --name production --production -${BIN} pact-broker publish tests/pacts -r -${BIN} pact-broker publish tests/pacts -a foo --branch bar -${BIN} pact-broker can-i-deploy --pacticipant GettingStartedOrderWeb --version foo --to prod || echo "can-i-deploy fails due to no verification result - expected" -${BIN} pact-broker can-i-deploy --pacticipant GettingStartedOrderWeb --version foo --to prod --dry-run -${BIN} pact-broker record-deployment --version foo --environment production --pacticipant GettingStartedOrderWeb -${BIN} pact-broker record-undeployment --environment production --pacticipant GettingStartedOrderWeb -${BIN} pact-broker record-release --version foo --environment production --pacticipant GettingStartedOrderWeb -${BIN} pact-broker record-support-ended --version foo --environment production --pacticipant GettingStartedOrderWeb -${BIN} pact-broker create-or-update-pacticipant --name foo --main-branch main --repository-url http://foo.bar -${BIN} pact-broker describe-pacticipant --name foo -${BIN} pact-broker list-pacticipants -${BIN} pact-broker create-webhook https://localhost --request POST --contract-published -export WEBHOOK_UUID=$(${BIN} pact-broker create-webhook https://localhost --request POST --contract-published | jq .uuid -r) -${BIN} pact-broker create-or-update-webhook https://foo.bar --request POST --uuid $WEBHOOK_UUID --provider-verification-succeeded -${BIN} pact-broker test-webhook --uuid $WEBHOOK_UUID -${BIN} pact-broker create-or-update-version --version foo --pacticipant foo --branch bar --tag baz -${BIN} pact-broker create-version-tag --version foo --pacticipant foo --tag bar -${BIN} pact-broker describe-version --pacticipant foo -${BIN} pact-broker can-i-merge --pacticipant foo --version foo -${BIN} pact-broker delete-branch --branch bar --pacticipant foo -${BIN} pact-broker describe-pacticipant --name foo -${BIN} pact-broker generate-uuid +${BIN} broker ruby stop || true +${BIN} broker ruby start -d +${BIN} broker ruby info +${BIN} broker list-latest-pact-versions +${BIN} broker create-environment --name name_foo1 +${BIN} broker create-environment --name name_foo2 --display-name display_name_foo +${BIN} broker create-environment --name name_foo3 --display-name display_name_foo --contact-name contact_name_foo +${BIN} broker create-environment --name name_foo4 --display-name display_name_foo --contact-name contact_name_foo --contact-email-address contact.email.address@foo.bar +export ENV_UUID=$(${BIN} broker create-environment --name name_foo5 --output=id) +${BIN} broker describe-environment --uuid $ENV_UUID +${BIN} broker update-environment --uuid $ENV_UUID --name name_foo6 +${BIN} broker update-environment --uuid $ENV_UUID --name name_foo7 --display-name display_name_foo6 +${BIN} broker update-environment --uuid $ENV_UUID --name name_foo8 --contact-name contact_name_foo8 +${BIN} broker update-environment --uuid $ENV_UUID --name name_foo9 --contact-name contact_name_foo9 --contact-email-address contact_name_foo7 +${BIN} broker delete-environment --uuid $ENV_UUID +${BIN} broker list-environments | awk -F '│' '{print $2}' | sed -n '3,$p' | sed '$d' | awk '{print $1}' | xargs -I {} ${BIN} broker delete-environment --uuid {} +${BIN} broker create-environment --name production --production +${BIN} broker publish tests/pacts -r +${BIN} broker publish tests/pacts -a foo --branch bar +${BIN} broker can-i-deploy --pacticipant GettingStartedOrderWeb --version foo --to prod || echo "can-i-deploy fails due to no verification result - expected" +${BIN} broker can-i-deploy --pacticipant GettingStartedOrderWeb --version foo --to prod --dry-run +${BIN} broker record-deployment --version foo --environment production --pacticipant GettingStartedOrderWeb +${BIN} broker record-undeployment --environment production --pacticipant GettingStartedOrderWeb +${BIN} broker record-release --version foo --environment production --pacticipant GettingStartedOrderWeb +${BIN} broker record-support-ended --version foo --environment production --pacticipant GettingStartedOrderWeb +${BIN} broker create-or-update-pacticipant --name foo --main-branch main --repository-url http://foo.bar +${BIN} broker describe-pacticipant --name foo +${BIN} broker list-pacticipants +${BIN} broker create-webhook https://localhost --request POST --contract-published +export WEBHOOK_UUID=$(${BIN} broker create-webhook https://localhost --request POST --contract-published | jq .uuid -r) +${BIN} broker create-or-update-webhook https://foo.bar --request POST --uuid $WEBHOOK_UUID --provider-verification-succeeded +${BIN} broker test-webhook --uuid $WEBHOOK_UUID +${BIN} broker create-or-update-version --version foo --pacticipant foo --branch bar --tag baz +${BIN} broker create-version-tag --version foo --pacticipant foo --tag bar +${BIN} broker describe-version --pacticipant foo +${BIN} broker can-i-merge --pacticipant foo --version foo +${BIN} broker delete-branch --branch bar --pacticipant foo +${BIN} broker describe-pacticipant --name foo +${BIN} broker generate-uuid -${BIN} pact-broker ruby stop +${BIN} broker ruby stop diff --git a/src/bin.rs b/src/bin.rs index 8516bd7..80f429c 100644 --- a/src/bin.rs +++ b/src/bin.rs @@ -13,7 +13,7 @@ pub fn main() -> Result<(), ExitCode> { let cloned_app = app.clone(); match app.clone().try_get_matches() { Ok(results) => match results.subcommand() { - Some(("pact-broker", args)) | Some(("pactflow", args)) => { + Some(("broker", args)) | Some(("pactflow", args)) => { // if args subcommand is docker or standalone, offset to those subcommands let subcommand = args.subcommand_name(); match subcommand { @@ -54,11 +54,11 @@ pub fn main() -> Result<(), ExitCode> { let error_message = err.render().to_string(); let versions = [ ( - "pact-cli-verifier", + "pact-verifier", pact_verifier_cli::print_version as fn(), ), - ("pact-cli-mock", pact_mock_server_cli::print_version as fn()), - ("pact-cli-stub", pact_stub_server_cli::print_version as fn()), + ("pact-mock", pact_mock_server_cli::print_version as fn()), + ("pact-stub", pact_stub_server_cli::print_version as fn()), ]; for (name, print_fn) in &versions { if error_message.contains(name) { @@ -98,10 +98,10 @@ fn generate_completions(args: &ArgMatches) -> Result<(), ExitCode> { return Err(ExitCode::from(2)); } }; - match generate_to(shell_enum, &mut cmd, "pact-cli".to_string(), &out_dir) { + match generate_to(shell_enum, &mut cmd, "pact".to_string(), &out_dir) { Ok(path) => { println!( - "ℹ️ {} shell completions for pact-cli written to {}", + "ℹ️ {} shell completions for pact written to {}", shell_enum, path.display() ); diff --git a/src/cli.rs b/src/cli.rs index 5792cbf..e729a35 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -8,11 +8,11 @@ pub mod pact_broker_docker; pub mod pact_broker_ruby; pub fn build_cli() -> Command { - let app = Command::new("pact-cli") + let app = Command::new("pact") .about("Pact consolidated CLI - pact_core_mock_server, pact_verifier, pact-stub-server, pact-plugin-cli, pact-broker-cli in a single binary") .subcommand( pact_broker_cli::cli::pact_broker_client::add_pact_broker_client_command() - .name("pact-broker") + .name("broker") .subcommand(add_ruby_broker_subcommand()) .subcommand(add_docker_broker_subcommand()) ) diff --git a/tests/cmd/main.toml b/tests/cmd/main.toml index a0ede56..ed41c4b 100644 --- a/tests/cmd/main.toml +++ b/tests/cmd/main.toml @@ -1 +1 @@ -bin.name = "pact-cli" +bin.name = "pact"