aip-cli

module
v0.36.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 9, 2026 License: MIT

README

AIP CLI Go

Generate command line interfaces to your AIP gRPC services.

How to

Step 1: Install the plugin
$ GOBIN=$PWD/build go install go.einride.tech/aip-cli/cmd/protoc-gen-go-aip-cli
Step 2: Configure the code generator

The following example uses a buf generate template to configure the CLI generator.

buf.gen.example.yaml:

version: v1

managed:
  enabled: true
  go_package_prefix:
    default: go.einride.tech/aip-cli/cmd/examplectl
    except:
      - buf.build/googleapis/googleapis

plugins:
  # The CLI generator requires the stubs generated by protoc-gen-go.
  - name: go
    out: cmd/examplectl
    opt: module=go.einride.tech/aip-cli/cmd/examplectl

  # The CLI generator optionally generates a root command and a main file
  # to the root of the output module.
  - name: go-aip-cli
    out: cmd/examplectl
    strategy: all
    opt:
      - module=go.einride.tech/aip-cli/cmd/examplectl
      - root=examplectl
      - gcloud_identity_tokens=true
Step 3: Generate the code
$ buf generate \
  --template buf.gen.example.yaml \
  --path einride/example/freight
Step 4: Install the CLI
$ go install ./cmd/examplectl
Step 5: Use the CLI
$ examplectl help freight

this api represents a simple freight service

Usage:
  examplectl freight [command]

Available Commands:
  batch-get-sites batch get sites
  create-shipment create a shipment
  create-shipper  create a shipper
  create-site     create a site
  delete-shipment delete a shipment
  delete-shipper  delete a shipper
  delete-site     delete a site
  get-shipment    get a shipment
  get-shipper     get a shipper
  get-site        get a site
  list-shipments  list shipments for a shipper
  list-shippers   list shippers
  list-sites      list sites for a shipper
  update-shipment update a shipment
  update-shipper  update a shipper
  update-site     update a site

Flags:
  -h, --help   help for freight

Global Flags:
      --address string   address to connect to
      --insecure         make insecure client connection (only on localhost)
      --token string     bearer token used by client
  -v, --verbose          print verbose output

Use "examplectl freight [command] --help" for more information about a command.
Note

The generate CLI performs as much validation as possible without hindering usability; however, the backend is ultimately responsible for validating input.

Directories

Path Synopsis
Package aipcli provides runtime APIs for generated CLIs.
Package aipcli provides runtime APIs for generated CLIs.
cmd
deployctl command
deployctl/gen
Code generated by protoc-gen-go-aip-cli.
Code generated by protoc-gen-go-aip-cli.
deployctl/gen/einride/deploy/v1
Code generated by protoc-gen-go-aip-cli.
Code generated by protoc-gen-go-aip-cli.
examplectl command
examplectl/gen
Code generated by protoc-gen-go-aip-cli.
Code generated by protoc-gen-go-aip-cli.
examplectl/gen/einride/example/freight/v1
Code generated by protoc-gen-go-aip-cli.
Code generated by protoc-gen-go-aip-cli.
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL