From aa73f47a5e2535224aa772f163aed2b6802bd4ad Mon Sep 17 00:00:00 2001 From: Adrien Hopkins Date: Wed, 30 Aug 2023 17:54:17 -0500 Subject: Add compact display --- args.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'args.go') diff --git a/args.go b/args.go index adcaa6b..517cb21 100644 --- a/args.go +++ b/args.go @@ -3,20 +3,26 @@ package main import ( "errors" "fmt" - "os" + "flag" "strconv" ) // The arguments to this program type args struct { Radix uint + Compact bool } func parseArgs() (args, error) { - if len(os.Args) == 2 { - if radix, err := strconv.ParseUint(os.Args[1], 0, 0); err == nil { + var a args + flag.BoolVar(&a.Compact, "c", false, "Compact the output display") + flag.Parse() + + if flag.NArg() == 1 { + if radix, err := strconv.ParseUint(flag.Arg(0), 0, 0); err == nil { if radix > 1 { - return args{uint(radix)}, nil + a.Radix = uint(radix) + return a, nil } else { return args{}, errors.New("Radix must be an integer above 1.") } @@ -24,7 +30,7 @@ func parseArgs() (args, error) { return args{}, fmt.Errorf( "Argument must be an integer above 1 [%w].", err) } - } else if len(os.Args) < 2 { + } else if flag.NArg() < 1 { return args{}, errors.New("Please provide an argument (radix to study).") } else { return args{}, errors.New("Too many arguments provided.") -- cgit v1.2.3