summaryrefslogtreecommitdiff
path: root/args.go
diff options
context:
space:
mode:
Diffstat (limited to 'args.go')
-rw-r--r--args.go16
1 files changed, 11 insertions, 5 deletions
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.")