util

package
v0.0.0-...-328360e Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2024 License: GPL-3.0 Imports: 7 Imported by: 0

Documentation

Overview

Package util has some CLI related utility code.

Index

Constants

View Source
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")
)

Variables

This section is empty.

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 EmptyArgs

type EmptyArgs struct{}

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 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 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.

Jump to

Keyboard shortcuts

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