diff options
Diffstat (limited to 'args.go')
| -rw-r--r-- | args.go | 32 |
1 files changed, 32 insertions, 0 deletions
@@ -0,0 +1,32 @@ +package main + +import ( + "errors" + "fmt" + "os" + "strconv" +) + +// The arguments to this program +type args struct { + Radix uint +} + +func parseArgs() (args, error) { + if len(os.Args) == 2 { + if radix, err := strconv.ParseUint(os.Args[1], 0, 0); err == nil { + if radix > 1 { + return args{uint(radix)}, nil + } else { + return args{}, errors.New("Radix must be an integer above 1.") + } + } else { + return args{}, fmt.Errorf( + "Argument must be an integer above 1 [%w].", err) + } + } else if len(os.Args) < 2 { + return args{}, errors.New("Please provide an argument (radix to study).") + } else { + return args{}, errors.New("Too many arguments provided.") + } +} |
