cli

package module
v0.0.23-wingettest2 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2024 License: MIT Imports: 14 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

View Source
var CmdRoot = NewCmd[ShowHelp](nil, "anchor", func(cmd *cobra.Command) {
	cmd.Args = cobra.NoArgs

	cmd.Flags().Bool("update", false, "update .golden files")
	if err := cmd.Flags().MarkHidden("update"); err != nil {
		panic(err)
	}
	cmd.Flags().Bool("prism-proxy", false, "run prism in proxy mode")
	if err := cmd.Flags().MarkHidden("prism-proxy"); err != nil {
		panic(err)
	}
})

Functions

func Client

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

func ContextWithConfig added in v0.0.21

func ContextWithConfig(ctx context.Context, cfg *Config) context.Context

func NewCmd added in v0.0.21

func NewCmd[T UIer](parent *cobra.Command, name string, fn func(*cobra.Command)) *cobra.Command

Types

type CmdDef added in v0.0.21

type CmdDef struct {
	Name string

	Use   string
	Short string
	Long  string

	SubDefs []CmdDef
}

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) 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 {
			Language string `desc:"Language to use for integrating Anchor." flag:"language" json:"language" toml:"language"`
		} `cmd:"setup"`
	} `cmd:"lcl"`

	Test struct {
		SkipRunE bool `desc:"skip RunE for testing purposes"`
	}

	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{} `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"`
	}

	Version struct{} `cmd:"version"`
}

func ConfigFromCmd added in v0.0.21

func ConfigFromCmd(cmd *cobra.Command) *Config

func ConfigFromContext added in v0.0.21

func ConfigFromContext(ctx context.Context) *Config

type ContextKey added in v0.0.21

type ContextKey string

type ShowHelp added in v0.0.21

type ShowHelp struct{}

func (ShowHelp) RunTUI added in v0.0.21

func (c ShowHelp) RunTUI(ctx context.Context, drv *ui.Driver) error

func (ShowHelp) UI added in v0.0.21

func (c ShowHelp) UI() UI

type UI added in v0.0.8

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

type UIer added in v0.0.21

type UIer interface {
	UI() UI
}

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