db-migrator.go
35 строк · 575.0 Байт
1package args
2
3import (
4"fmt"
5"strconv"
6
7"github.com/pkg/errors"
8)
9
10const (
11empty = ""
12all = "all"
13)
14
15var ErrArgumentMustBeGreaterThanZero = errors.New("the step argument must be greater than 0")
16
17func ParseStepStringOrDefault(value string, defaults int) (int, error) {
18switch value {
19case empty:
20return defaults, nil
21case all:
22return 0, nil
23default:
24i, err := strconv.Atoi(value)
25if err != nil {
26return -1, fmt.Errorf("the step argument %s is not valid", value)
27}
28
29if i < 1 {
30return -1, ErrArgumentMustBeGreaterThanZero
31}
32
33return i, nil
34}
35}
36