1
0
Fork 0
mirror of https://github.com/Luzifer/vault-unseal.git synced 2024-12-22 13:51:20 +00:00

update rconfig

This commit is contained in:
Knut Ahlers 2016-07-20 08:40:55 +02:00
parent 0ece8e907c
commit 9031b6d204
Signed by: luzifer
GPG key ID: DC2729FDD34BE99E
4 changed files with 38 additions and 3 deletions

6
Godeps/Godeps.json generated
View file

@ -1,12 +1,12 @@
{
"ImportPath": "github.com/Jimdo/vault-unseal",
"GoVersion": "go1.6",
"GodepVersion": "v60",
"GodepVersion": "v74",
"Deps": [
{
"ImportPath": "github.com/Luzifer/rconfig",
"Comment": "v1.0.2",
"Rev": "d194dded1e1c7630486e642cacc09400f94f32a2"
"Comment": "v1.1.0",
"Rev": "c27bd3a64b5b19556914d9fec69922cf3852d585"
},
{
"ImportPath": "github.com/spf13/pflag",

5
vendor/github.com/Luzifer/rconfig/History.md generated vendored Normal file
View file

@ -0,0 +1,5 @@
# 1.1.0 / 2016-06-28
* Support time.Duration config parameters
* Added goreportcard badge
* Added testcase for using bool with ENV and default

View file

@ -1,6 +1,7 @@
[![Build Status](https://travis-ci.org/Luzifer/rconfig.svg?branch=master)](https://travis-ci.org/Luzifer/rconfig)
[![License: Apache v2.0](https://badge.luzifer.io/v1/badge?color=5d79b5&title=license&text=Apache+v2.0)](http://www.apache.org/licenses/LICENSE-2.0)
[![Documentation](https://badge.luzifer.io/v1/badge?title=godoc&text=reference)](https://godoc.org/github.com/Luzifer/rconfig)
[![Go Report](http://goreportcard.com/badge/Luzifer/rconfig)](http://goreportcard.com/report/Luzifer/rconfig)
## Description

View file

@ -10,6 +10,7 @@ import (
"reflect"
"strconv"
"strings"
"time"
"github.com/spf13/pflag"
)
@ -44,6 +45,11 @@ func Parse(config interface{}) error {
return parse(config, nil)
}
// Args returns the non-flag command-line arguments.
func Args() []string {
return fs.Args()
}
// Usage prints a basic usage with the corresponding defaults for the flags to
// os.Stdout. The defaults are derived from the `default` struct-tag and the ENV.
func Usage() {
@ -95,6 +101,29 @@ func execTags(in interface{}, fs *pflag.FlagSet) error {
value = envDefault(typeField.Tag.Get("env"), value)
parts := strings.Split(typeField.Tag.Get("flag"), ",")
switch typeField.Type {
case reflect.TypeOf(time.Duration(0)):
v, err := time.ParseDuration(value)
if err != nil {
if value == "" {
v = time.Duration(0)
} else {
return err
}
}
if typeField.Tag.Get("flag") != "" {
if len(parts) == 1 {
fs.DurationVar(valField.Addr().Interface().(*time.Duration), parts[0], v, typeField.Tag.Get("description"))
} else {
fs.DurationVarP(valField.Addr().Interface().(*time.Duration), parts[0], parts[1], v, typeField.Tag.Get("description"))
}
} else {
valField.Set(reflect.ValueOf(v))
}
continue
}
switch typeField.Type.Kind() {
case reflect.String:
if typeField.Tag.Get("flag") != "" {