OSDN Git Service

fix commands
[bytom/shuttle.git] / vendor / github.com / bytom / vendor / github.com / magiconair / properties / integrate.go
diff --git a/vendor/github.com/bytom/vendor/github.com/magiconair/properties/integrate.go b/vendor/github.com/bytom/vendor/github.com/magiconair/properties/integrate.go
new file mode 100644 (file)
index 0000000..0d775e0
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright 2017 Frank Schroeder. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package properties
+
+import "flag"
+
+// MustFlag sets flags that are skipped by dst.Parse when p contains
+// the respective key for flag.Flag.Name.
+//
+// It's use is recommended with command line arguments as in:
+//     flag.Parse()
+//     p.MustFlag(flag.CommandLine)
+func (p *Properties) MustFlag(dst *flag.FlagSet) {
+       m := make(map[string]*flag.Flag)
+       dst.VisitAll(func(f *flag.Flag) {
+               m[f.Name] = f
+       })
+       dst.Visit(func(f *flag.Flag) {
+               delete(m, f.Name) // overridden
+       })
+
+       for name, f := range m {
+               v, ok := p.Get(name)
+               if !ok {
+                       continue
+               }
+
+               if err := f.Value.Set(v); err != nil {
+                       ErrorHandler(err)
+               }
+       }
+}