package util

import "github.com/purpleidea/mgmt/cli/util"

Package util has some CLI related utility code.

Index

Constants

const (
	// MissingEquals means we probably hit the parsing bug.
	// XXX: see: https://github.com/alexflint/go-arg/issues/239
	MissingEquals = Error("missing equals sign for list element")
)

Functions

func CliParseError

func CliParseError(err error) error

CliParseError returns a consistent error if we have a CLI parsing issue.

func Hello

func Hello(program, version string, flags Flags)

Hello is a simple helper function to print a hello message and time.

func LogSetup

func LogSetup(debug bool)

LogSetup changes some of the core logger package settings.

func LookupSubcommand

func LookupSubcommand(obj interface{}, st interface{}) string

LookupSubcommand returns the name of the subcommand in the obj, of a struct. This is useful for determining the name of the subcommand that was activated. It returns an empty string if a specific name was not found.

func SafeProgram

func SafeProgram(program string) string

SafeProgram returns the correct program string when given a buggy variant.

Types

type Data

type Data struct {
	Program string
	Version string
	Copying string
	Tagline string
	Flags   Flags
	Args    []string // os.Args usually
}

Data is a struct of values that we usually pass to the main CLI function.

type DocsGenerateArgs

type DocsGenerateArgs struct {
	Output      string `arg:"--output" help:"output path to write to"`
	RootDir     string `arg:"--root-dir" help:"path to mgmt source dir"`
	NoResources bool   `arg:"--no-resources" help:"skip resource doc generation"`
	NoFunctions bool   `arg:"--no-functions" help:"skip function doc generation"`
}

DocsGenerateArgs is the docgen utility CLI parsing structure and type of the parsed result.

type EmptyArgs

type EmptyArgs struct {
	Wait bool `arg:"--wait" help:"don't use any existing (stale) deploys"`
}

EmptyArgs is the empty CLI parsing structure and type of the parsed result.

type Error

type Error string

Error is a constant error type that implements error.

func (Error) Error

func (e Error) Error() string

Error fulfills the error interface of this type.

type FirstbootStartArgs

type FirstbootStartArgs struct {
	LockFilePath string `arg:"--lock-file-path" help:"path to the lock file"`
	ScriptsDir   string `arg:"--scripts-dir" help:"path to the scripts dir"`
	DoneDir      string `arg:"--done-dir" help:"dir to move done scripts to"`
	LoggingDir   string `arg:"--logging-dir" help:"directory to store logs in"`
}

FirstbootStartArgs is the firstboot service CLI parsing structure and type of the parsed result.

type Flags

type Flags struct {
	Debug bool // add additional log messages
	Logf  func(format string, v ...interface{})
}

Flags are some constant flags which are used throughout the program.

type LangArgs

type LangArgs struct {
	// Input is the input mcl code or file path or any input specification.
	Input string `arg:"positional,required"`

	Download     bool `arg:"--download" help:"download any missing imports"`
	OnlyDownload bool `arg:"--only-download" help:"stop after downloading any missing imports"`
	Update       bool `arg:"--update" help:"update all dependencies to the latest versions"`

	OnlyUnify          bool     `arg:"--only-unify" help:"stop after type unification"`
	SkipUnify          bool     `arg:"--skip-unify" help:"skip type unification"`
	UnifySolver        *string  `arg:"--unify-name" help:"pick a specific unification solver"`
	UnifyOptimizations []string `arg:"--unify-optimizations" help:"list of unification optimizations to request (experts only)"`

	Depth int `arg:"--depth" default:"-1" help:"max recursion depth limit (-1 is unlimited)"`

	// The default of 0 means any error is a failure by default.
	Retry int `arg:"--depth" help:"max number of retries (-1 is unlimited)"`

	ModulePath string `arg:"--module-path,env:MGMT_MODULE_PATH" help:"choose the modules path (absolute)"`
}

LangArgs is the lang CLI parsing structure and type of the parsed result.

type LangPuppetArgs

type LangPuppetArgs struct {
	// LangInput is the input mcl code or file path or any input specification.
	LangInput string `arg:"--lang,required" help:"the input parameter for the lang module"`

	// PuppetInput is the input puppet code or file path or just "agent".
	PuppetInput string `arg:"--puppet,required" help:"the input parameter for the puppet module"`

	// PuppetConf is the optional path to a puppet.conf config file.
	PuppetConf string `arg:"--puppet-conf" help:"full path to the puppet.conf file to use"`

	Download     bool `arg:"--download" help:"download any missing imports"`
	OnlyDownload bool `arg:"--only-download" help:"stop after downloading any missing imports"`
	Update       bool `arg:"--update" help:"update all dependencies to the latest versions"`

	OnlyUnify bool `arg:"--only-unify" help:"stop after type unification"`
	SkipUnify bool `arg:"--skip-unify" help:"skip type unification"`

	Depth int `arg:"--depth" default:"-1" help:"max recursion depth limit (-1 is unlimited)"`

	// The default of 0 means any error is a failure by default.
	Retry int `arg:"--depth" help:"max number of retries (-1 is unlimited)"`

	ModulePath string `arg:"--module-path,env:MGMT_MODULE_PATH" help:"choose the modules path (absolute)"`
}

LangPuppetArgs is the langpuppet CLI parsing structure and type of the parsed result.

type PuppetArgs

type PuppetArgs struct {
	// Input is the input puppet code or file path or just "agent".
	Input string `arg:"positional,required"`

	// PuppetConf is the optional path to a puppet.conf config file.
	PuppetConf string `arg:"--puppet-conf" help:"full path to the puppet.conf file to use"`
}

PuppetArgs is the puppet CLI parsing structure and type of the parsed result.

type SetupFirstbootArgs

type SetupFirstbootArgs struct {
	BinaryPath string `arg:"--binary-path" help:"path to the binary"`
	Mkdir      bool   `arg:"--mkdir" help:"make the necessary firstboot dirs"`
	Install    bool   `arg:"--install" help:"install the systemd firstboot service"`
	Start      bool   `arg:"--start" help:"start the firstboot service (typically not used)"`
	Enable     bool   `arg:"--enable" help:"enable the firstboot service"`

	FirstbootStartArgs // Include these options if we want to specify them.
}

SetupFirstbootArgs is the setup service CLI parsing structure and type of the parsed result.

type SetupPkgArgs

type SetupPkgArgs struct {
	Distro string `arg:"--distro" help:"build for this distro"`
	Sudo   bool   `arg:"--sudo" help:"include sudo in the command"`
	Exec   bool   `arg:"--exec" help:"actually run these commands"`
}

SetupPkgArgs is the setup service CLI parsing structure and type of the parsed result.

type SetupSvcArgs

type SetupSvcArgs struct {
	BinaryPath string   `arg:"--binary-path" help:"path to the binary"`
	Seeds      []string `arg:"--seeds,env:MGMT_SEEDS" help:"default etcd client endpoints"`
	NoServer   bool     `arg:"--no-server" help:"do not start embedded etcd server (do not promote from client to peer)"`

	Install bool `arg:"--install" help:"install the systemd mgmt service"`
	Start   bool `arg:"--start" help:"start the mgmt service"`
	Enable  bool `arg:"--enable" help:"enable the mgmt service"`
}

SetupSvcArgs is the setup service CLI parsing structure and type of the parsed result.

type YamlArgs

type YamlArgs struct {
	// Input is the input yaml code or file path or any input specification.
	Input string `arg:"positional,required"`
}

YamlArgs is the yaml CLI parsing structure and type of the parsed result.

Source Files

args.go hello.go util.go

Version
v0.0.0-20250322185616-c50a578426f1 (latest)
Published
Mar 22, 2025
Platform
linux/amd64
Imports
7 packages
Last checked
4 days ago

Tools for package owners.