podman

Форк
0
86 строк · 3.2 Кб
1
package pflag
2

3
import (
4
	"time"
5
)
6

7
// -- time.Duration Value
8
type durationValue time.Duration
9

10
func newDurationValue(val time.Duration, p *time.Duration) *durationValue {
11
	*p = val
12
	return (*durationValue)(p)
13
}
14

15
func (d *durationValue) Set(s string) error {
16
	v, err := time.ParseDuration(s)
17
	*d = durationValue(v)
18
	return err
19
}
20

21
func (d *durationValue) Type() string {
22
	return "duration"
23
}
24

25
func (d *durationValue) String() string { return (*time.Duration)(d).String() }
26

27
func durationConv(sval string) (interface{}, error) {
28
	return time.ParseDuration(sval)
29
}
30

31
// GetDuration return the duration value of a flag with the given name
32
func (f *FlagSet) GetDuration(name string) (time.Duration, error) {
33
	val, err := f.getFlagType(name, "duration", durationConv)
34
	if err != nil {
35
		return 0, err
36
	}
37
	return val.(time.Duration), nil
38
}
39

40
// DurationVar defines a time.Duration flag with specified name, default value, and usage string.
41
// The argument p points to a time.Duration variable in which to store the value of the flag.
42
func (f *FlagSet) DurationVar(p *time.Duration, name string, value time.Duration, usage string) {
43
	f.VarP(newDurationValue(value, p), name, "", usage)
44
}
45

46
// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash.
47
func (f *FlagSet) DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) {
48
	f.VarP(newDurationValue(value, p), name, shorthand, usage)
49
}
50

51
// DurationVar defines a time.Duration flag with specified name, default value, and usage string.
52
// The argument p points to a time.Duration variable in which to store the value of the flag.
53
func DurationVar(p *time.Duration, name string, value time.Duration, usage string) {
54
	CommandLine.VarP(newDurationValue(value, p), name, "", usage)
55
}
56

57
// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash.
58
func DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) {
59
	CommandLine.VarP(newDurationValue(value, p), name, shorthand, usage)
60
}
61

62
// Duration defines a time.Duration flag with specified name, default value, and usage string.
63
// The return value is the address of a time.Duration variable that stores the value of the flag.
64
func (f *FlagSet) Duration(name string, value time.Duration, usage string) *time.Duration {
65
	p := new(time.Duration)
66
	f.DurationVarP(p, name, "", value, usage)
67
	return p
68
}
69

70
// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash.
71
func (f *FlagSet) DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration {
72
	p := new(time.Duration)
73
	f.DurationVarP(p, name, shorthand, value, usage)
74
	return p
75
}
76

77
// Duration defines a time.Duration flag with specified name, default value, and usage string.
78
// The return value is the address of a time.Duration variable that stores the value of the flag.
79
func Duration(name string, value time.Duration, usage string) *time.Duration {
80
	return CommandLine.DurationP(name, "", value, usage)
81
}
82

83
// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash.
84
func DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration {
85
	return CommandLine.DurationP(name, shorthand, value, usage)
86
}
87

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.