cli

package module
v0.0.17 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2024 License: MIT Imports: 13 Imported by: 0

README

Anchor CLI

anchor is a command line interface for the Anchor.dev certificate management platform.

Installation

macOS

anchor is available via Homebrew or as a downloadable binary from the releases page.

Homebrew
Install: Upgrade:
brew install anchordotdev/tap/anchor brew update && brew upgrade anchordotdev/tap/anchor
Linux & BSD

anchor is available via Homebrew or as a downloadable binary from the releases page.

Homebrew
Install: Upgrade:
brew install anchordotdev/tap/anchor brew upgrade anchordotdev/tap/anchor
Windows

anchor is not yet supported.

Install from source

To install anchor from source run go install github.com/anchordotdev/cli/cmd/anchor@latest.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Client

func Client(cfg *Config) (http.Client, error)

Types

type Command

type Command struct {
	UI

	Name        string
	Use         string
	Short, Long string

	Group string

	Hidden bool

	SubCommands []*Command

	Preflight func(context.Context) error
}

func (*Command) Execute

func (c *Command) Execute(ctx context.Context, cfg *Config) error

type Config

type Config struct {
	JSON           bool `desc:"Only print JSON output to STDOUT." flag:"json,j" env:"JSON_OUTPUT" toml:"json-output"`
	NonInteractive bool `desc:"Run without ever asking for user input." flag:"non-interactive,n" env:"NON_INTERACTIVE" toml:"non-interactive"`
	Verbose        bool `desc:"Verbose output." flag:"verbose,v" env:"VERBOSE" toml:"verbose"`

	AnchorURL string `default:"https://anchor.dev" desc:"TODO" flag:"host" env:"ANCHOR_HOST" toml:"anchor-host"`

	API struct {
		URL   string `` /* 128-byte string literal not displayed */
		Token string `desc:"Anchor API personal access token (PAT)." flag:"api-token,t" env:"API_TOKEN" json:"api_token" toml:"token"`
	}

	Lcl struct {
		Service   string `desc:"Name for lcl.host diagnostic service." flag:"service" env:"SERVICE" json:"service" toml:"service"`
		Subdomain string `desc:"Subdomain for lcl.host diagnostic service." flag:"subdomain" env:"SUBDOMAIN" json:"subdomain" toml:"subdomain"`

		DiagnosticAddr string `default:":4433" desc:"Local server address" flag:"addr,a" env:"ADDR" json:"address" toml:"address"`
		LclHostURL     string `default:"https://lcl.host" env:"LCL_HOST_URL"`

		Audit struct {
		} `cmd:"audit"`

		Clean struct {
		} `cmd:"clean"`

		Config struct {
		} `cmd:"config"`

		MkCert struct {
			Domains string `flag:"domains"`
			SubCa   string `flag:"subca"`
		} `cmd:"mkcert"`

		Setup struct {
			PackageManager string `` /* 144-byte string literal not displayed */
			Service        string `desc:"Name for lcl.host service." flag:"service" env:"SERVICE" json:"service" toml:"service"`
			Subdomain      string `desc:"Subdomain for lcl.host service." flag:"subdomain" env:"SUBDOMAIN" json:"subdomain" toml:"subdomain"`
			File           string `desc:"File Anchor should use to detect package manager." flag:"file" env:"PACKAGE_MANAGER_FILE" json:"file" toml:"file"`
			Language       string `desc:"Language to use for integrating Anchor." flag:"language" json:"language" toml:"language"`
		} `cmd:"setup"`
	} `cmd:"lcl"`

	Trust struct {
		Org   string `desc:"organization" flag:"org,o" env:"ORG" json:"org" toml:"org"`
		Realm string `desc:"realm" flag:"realm,r" env:"REALM" json:"realm" toml:"realm"`

		NoSudo bool `desc:"Disable sudo prompts." flag:"no-sudo" env:"NO_SUDO" toml:"no-sudo"`

		MockMode bool `env:"ANCHOR_CLI_TRUSTSTORE_MOCK_MODE"`

		Stores []string `default:"[system,nss,homebrew]" desc:"trust stores" flag:"trust-stores" env:"TRUST_STORES" toml:"trust-stores"`

		Audit struct{} `cmd:"audit"`

		Clean struct {
			States []string `default:"[expired]" desc:"cert state(s)" flag:"cert-states" env:"CERT_STATES" toml:"cert-states"`
		} `cmd:"clean"`
	} `cmd:"trust"`

	User struct {
		Auth struct {
			SignIn struct {
				Email string `desc:"primary email address" flag:"email,e" env:"EMAIL" toml:"email"`
			} `cmd:"signin"`

			SignOut struct{} `cmd:"signout"`

			WhoAmI struct{} `cmd:"whoami"`
		} `cmd:"auth"`
	} `group:"user,user management" toml:"user"`

	Keyring struct {
		MockMode bool `env:"ANCHOR_CLI_KEYRING_MOCK_MODE"`
	}
}

type UI added in v0.0.8

type UI struct {
	RunTTY func(context.Context, termenv.File) error
	RunTUI func(context.Context, *ui.Driver) error
}

Directories

Path Synopsis
api
Package api provides primitives to interact with the openapi HTTP API.
Package api provides primitives to interact with the openapi HTTP API.
cmd
oid
internal
lcl
Package truststore manages local trust stores and certificates.
Package truststore manages local trust stores and certificates.
ui

Jump to

Keyboard shortcuts

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