booleanIs

command
v0.1.14 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2025 License: GPL-3.0 Imports: 3 Imported by: 0

README

Example Boolean Is

Overview

This example demos the identification of a single boolean flags. If found the matching flag is removed as encountered. An ambiguous error will be generated if the flag appears more than once.

It demonstrates the following szargs functions:

// New creates a new Args object based in the arguments passed.  The first
// element of the arguments must be the program name.
func New(programDesc string, args []string) *Args

// Is returns true if the flag is present one and only one time.
func (args *Args) Is(flag, desc string) bool

// Done registers an error if there are any remaining arguments.
func (args *Args) Done()

// HasErr returns true if any errors have been encountered or registered.
func (args *Args) HasErr() bool

// Err returns any errors encountered or registered while parsing the
// arguments.
func (args *Args) Err() error

// Usage returns a usage message based on the parsed arguments.
func (args *Args) Usage() string

Contents

Source

The source used for this example. It simply defines a new szargs.Arg object, then defines a "true" flag which identified the flag's presence in the argument list. Finally the Done function is called to insure that no more arguments exist in the list.

cat ./main.go
// Package main implements a simple example of using szargs.
//
//nolint:forbidigo // OK to print to os.Stdout.
package main

import (
    "fmt"
    "os"

    "github.com/dancsecs/szargs"
)

func main() {
    args := szargs.New(
        "A simple utility to demo identifying a boolean flag.",
        os.Args,
    )

    isTrue := args.Is(
        "[-t | --true]", // A short and long form.
        "A single flag indicating true.",
    )

    args.Done() // All arguments should have consumed.

    if args.HasErr() {
        fmt.Fprintf(os.Stderr, "Error: %v\n\n%s\n", args.Err(), args.Usage())
    } else {
        if isTrue {
            fmt.Println("Is true.")
        } else {
            fmt.Println("Is NOT true.")
        }
    }
}

Top of Page -- Szargs Contents

PASS: No Arguments

go run .
Is NOT true.

Top of Page -- Szargs Contents

PASS: Single Long Form

go run . --true
Is true.

Top of Page -- Szargs Contents

PASS: Single Short Form

go run . -t
Is true.

Top of Page -- Szargs Contents

FAIL: Ambiguous Argument

The error is because a true flag appeared more than once. A second error is generated by the args.Done() statement causing both the error and a usage statement to be returned.


go run . --true -t
Error: ambiguous argument: '[-t | --true]' found 2 times

booleanIs
A simple utility to demo identifying a boolean flag.

Usage: booleanIs [-t | --true]

[-t | --true]
A single flag indicating true.

Top of Page -- Szargs Contents

FAIL: Extra Unknown Argument

The error is generated by the args.Done() statement causing both the error and a usage statement to be returned.


go run . --true extraUnknownArgument
Error: unexpected argument: [extraUnknownArgument]

booleanIs
A simple utility to demo identifying a boolean flag.

Usage: booleanIs [-t | --true]

[-t | --true]
A single flag indicating true.

Top of Page -- Szargs Contents

Documentation

Overview

Package main implements a simple example of using szargs.

Jump to

Keyboard shortcuts

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