tag v0.165.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.165.0 ---------------- * distro: move rhel9 into a generic distro (osbuild/images#1645) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Simon de Vlieger * Revert "distro: drop `ImageType.BasePartitionTable()`" (osbuild/images#1691) * Author: Michael Vogt, Reviewers: Simon de Vlieger, Tomáš Hozza * Update dependencies 2025-07-20 (osbuild/images#1675) * Author: SchutzBot, Reviewers: Achilleas Koutsou, Simon de Vlieger * defs: add missing `bootstrap_containers` (osbuild/images#1679) * Author: Michael Vogt, Reviewers: Simon de Vlieger, Tomáš Hozza * disk: handle adding `PReP` partition on PPC64/s390x (HMS-8884) (osbuild/images#1681) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Simon de Vlieger * distro: bring per-distro checkOptions back (osbuild/images#1678) * Author: Michael Vogt, Reviewers: Simon de Vlieger, Tomáš Hozza * distro: cleanups in the pkg/distro/generic area (osbuild/images#1686) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Simon de Vlieger * distro: move rhel8 into a generic distro (osbuild/images#1643) * Author: Michael Vogt, Reviewers: Nobody * distro: small followups for PR#1682 (osbuild/images#1689) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Simon de Vlieger, Tomáš Hozza * distro: unify transform/match into a single concept (osbuild/images#1682) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Tomáš Hozza * distros: de-duplicate runner build packages for centos10 (osbuild/images#1680) * Author: Michael Vogt, Reviewers: Simon de Vlieger, Tomáš Hozza * github: disable Go dep updates through dependabot (osbuild/images#1683) * Author: Achilleas Koutsou, Reviewers: Simon de Vlieger, Tomáš Hozza * repos: include almalinux 9.6 (osbuild/images#1677) * Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza * rhel9: wsl distribution config (osbuild/images#1694) * Author: Simon de Vlieger, Reviewers: Michael Vogt, Sanne Raymaekers * test/manifests/all-customizations: don't embed local file via URI (osbuild/images#1684) * Author: Tomáš Hozza, Reviewers: Achilleas Koutsou, Brian C. Lane — Somewhere on the Internet, 2025-07-28 --- tag v0.166.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.166.0 ---------------- * customizations/subscription: conditionally enable semanage call (HMS-8866) (osbuild/images#1673) * Author: Sanne Raymaekers, Reviewers: Achilleas Koutsou, Michael Vogt * distro/rhel-10: versionlock shim-x64 in the azure-cvm image (osbuild/images#1697) * Author: Achilleas Koutsou, Reviewers: Michael Vogt, Simon de Vlieger * manifestmock: move container/pkg/commit mocks into helper (osbuild/images#1700) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Simon de Vlieger * rhel9: `vagrant-libvirt`, `vagrant-virtualbox` (osbuild/images#1693) * Author: Simon de Vlieger, Reviewers: Michael Vogt, Sanne Raymaekers * rhel{9,10}: centos WSL refinement (HMS-8922) (osbuild/images#1690) * Author: Simon de Vlieger, Reviewers: Ondřej Budai, Sanne Raymaekers, Tomáš Hozza — Somewhere on the Internet, 2025-07-29 --- tag v0.167.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.167.0 ---------------- * RHEL/Azure: drop obsolete WAAgentConfig keys [RHEL-93894] and remove loglevel kernel option [RHEL-102372] (osbuild/images#1611) * Author: Achilleas Koutsou, Reviewers: Michael Vogt, Ondřej Budai, Sanne Raymaekers * Update dependencies 2025-07-27 (osbuild/images#1699) * Author: SchutzBot, Reviewers: Achilleas Koutsou, Simon de Vlieger * distro/rhel9: set default_kernel to kernel-uki-virt (osbuild/images#1704) * Author: Achilleas Koutsou, Reviewers: Ondřej Budai, Simon de Vlieger * distro: drop legacy loaders and update tests (osbuild/images#1687) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Tomáš Hozza * distro: fix issues with yaml distro definitions and enable yaml checks (osbuild/images#1702) * Author: Achilleas Koutsou, Reviewers: Michael Vogt, Ondřej Budai, Simon de Vlieger — Somewhere on the Internet, 2025-07-30 --- tag v0.168.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.168.0 ---------------- * distro: fix bug in variable substitution for static distros (osbuild/images#1710) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Simon de Vlieger * rhel{9,10}: azure for non-RHEL (HMS-8949) (osbuild/images#1707) * Author: Simon de Vlieger, Reviewers: Achilleas Koutsou, Michael Vogt — Somewhere on the Internet, 2025-07-30 ---
149 lines
4.3 KiB
Go
149 lines
4.3 KiB
Go
package pflag
|
|
|
|
import "fmt"
|
|
|
|
// notExistErrorMessageType specifies which flavor of "flag does not exist"
|
|
// is printed by NotExistError. This allows the related errors to be grouped
|
|
// under a single NotExistError struct without making a breaking change to
|
|
// the error message text.
|
|
type notExistErrorMessageType int
|
|
|
|
const (
|
|
flagNotExistMessage notExistErrorMessageType = iota
|
|
flagNotDefinedMessage
|
|
flagNoSuchFlagMessage
|
|
flagUnknownFlagMessage
|
|
flagUnknownShorthandFlagMessage
|
|
)
|
|
|
|
// NotExistError is the error returned when trying to access a flag that
|
|
// does not exist in the FlagSet.
|
|
type NotExistError struct {
|
|
name string
|
|
specifiedShorthands string
|
|
messageType notExistErrorMessageType
|
|
}
|
|
|
|
// Error implements error.
|
|
func (e *NotExistError) Error() string {
|
|
switch e.messageType {
|
|
case flagNotExistMessage:
|
|
return fmt.Sprintf("flag %q does not exist", e.name)
|
|
|
|
case flagNotDefinedMessage:
|
|
return fmt.Sprintf("flag accessed but not defined: %s", e.name)
|
|
|
|
case flagNoSuchFlagMessage:
|
|
return fmt.Sprintf("no such flag -%v", e.name)
|
|
|
|
case flagUnknownFlagMessage:
|
|
return fmt.Sprintf("unknown flag: --%s", e.name)
|
|
|
|
case flagUnknownShorthandFlagMessage:
|
|
c := rune(e.name[0])
|
|
return fmt.Sprintf("unknown shorthand flag: %q in -%s", c, e.specifiedShorthands)
|
|
}
|
|
|
|
panic(fmt.Errorf("unknown flagNotExistErrorMessageType: %v", e.messageType))
|
|
}
|
|
|
|
// GetSpecifiedName returns the name of the flag (without dashes) as it
|
|
// appeared in the parsed arguments.
|
|
func (e *NotExistError) GetSpecifiedName() string {
|
|
return e.name
|
|
}
|
|
|
|
// GetSpecifiedShortnames returns the group of shorthand arguments
|
|
// (without dashes) that the flag appeared within. If the flag was not in a
|
|
// shorthand group, this will return an empty string.
|
|
func (e *NotExistError) GetSpecifiedShortnames() string {
|
|
return e.specifiedShorthands
|
|
}
|
|
|
|
// ValueRequiredError is the error returned when a flag needs an argument but
|
|
// no argument was provided.
|
|
type ValueRequiredError struct {
|
|
flag *Flag
|
|
specifiedName string
|
|
specifiedShorthands string
|
|
}
|
|
|
|
// Error implements error.
|
|
func (e *ValueRequiredError) Error() string {
|
|
if len(e.specifiedShorthands) > 0 {
|
|
c := rune(e.specifiedName[0])
|
|
return fmt.Sprintf("flag needs an argument: %q in -%s", c, e.specifiedShorthands)
|
|
}
|
|
|
|
return fmt.Sprintf("flag needs an argument: --%s", e.specifiedName)
|
|
}
|
|
|
|
// GetFlag returns the flag for which the error occurred.
|
|
func (e *ValueRequiredError) GetFlag() *Flag {
|
|
return e.flag
|
|
}
|
|
|
|
// GetSpecifiedName returns the name of the flag (without dashes) as it
|
|
// appeared in the parsed arguments.
|
|
func (e *ValueRequiredError) GetSpecifiedName() string {
|
|
return e.specifiedName
|
|
}
|
|
|
|
// GetSpecifiedShortnames returns the group of shorthand arguments
|
|
// (without dashes) that the flag appeared within. If the flag was not in a
|
|
// shorthand group, this will return an empty string.
|
|
func (e *ValueRequiredError) GetSpecifiedShortnames() string {
|
|
return e.specifiedShorthands
|
|
}
|
|
|
|
// InvalidValueError is the error returned when an invalid value is used
|
|
// for a flag.
|
|
type InvalidValueError struct {
|
|
flag *Flag
|
|
value string
|
|
cause error
|
|
}
|
|
|
|
// Error implements error.
|
|
func (e *InvalidValueError) Error() string {
|
|
flag := e.flag
|
|
var flagName string
|
|
if flag.Shorthand != "" && flag.ShorthandDeprecated == "" {
|
|
flagName = fmt.Sprintf("-%s, --%s", flag.Shorthand, flag.Name)
|
|
} else {
|
|
flagName = fmt.Sprintf("--%s", flag.Name)
|
|
}
|
|
return fmt.Sprintf("invalid argument %q for %q flag: %v", e.value, flagName, e.cause)
|
|
}
|
|
|
|
// Unwrap implements errors.Unwrap.
|
|
func (e *InvalidValueError) Unwrap() error {
|
|
return e.cause
|
|
}
|
|
|
|
// GetFlag returns the flag for which the error occurred.
|
|
func (e *InvalidValueError) GetFlag() *Flag {
|
|
return e.flag
|
|
}
|
|
|
|
// GetValue returns the invalid value that was provided.
|
|
func (e *InvalidValueError) GetValue() string {
|
|
return e.value
|
|
}
|
|
|
|
// InvalidSyntaxError is the error returned when a bad flag name is passed on
|
|
// the command line.
|
|
type InvalidSyntaxError struct {
|
|
specifiedFlag string
|
|
}
|
|
|
|
// Error implements error.
|
|
func (e *InvalidSyntaxError) Error() string {
|
|
return fmt.Sprintf("bad flag syntax: %s", e.specifiedFlag)
|
|
}
|
|
|
|
// GetSpecifiedName returns the exact flag (with dashes) as it
|
|
// appeared in the parsed arguments.
|
|
func (e *InvalidSyntaxError) GetSpecifiedFlag() string {
|
|
return e.specifiedFlag
|
|
}
|