forked from lug/matterbridge
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			781 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			781 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// 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)
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |