48 lines
		
	
	
		
			768 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			768 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# Flag Source
 | 
						|
 | 
						|
The flag source reads config from flags
 | 
						|
 | 
						|
## Format
 | 
						|
 | 
						|
We expect the use of the `flag` package. Upper case flags will be lower cased. Dashes will be used as delimiters.
 | 
						|
 | 
						|
### Example
 | 
						|
 | 
						|
```
 | 
						|
dbAddress := flag.String("database_address", "127.0.0.1", "the db address")
 | 
						|
dbPort := flag.Int("database_port", 3306, "the db port)
 | 
						|
```
 | 
						|
 | 
						|
Becomes
 | 
						|
 | 
						|
```json
 | 
						|
{
 | 
						|
    "database": {
 | 
						|
        "address": "127.0.0.1",
 | 
						|
        "port": 3306
 | 
						|
    }
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
## New Source
 | 
						|
 | 
						|
```go
 | 
						|
flagSource := flag.NewSource(
 | 
						|
	// optionally enable reading of unset flags and their default
 | 
						|
	// values into config, defaults to false
 | 
						|
	IncludeUnset(true)
 | 
						|
)
 | 
						|
```
 | 
						|
 | 
						|
## Load Source
 | 
						|
 | 
						|
Load the source into config
 | 
						|
 | 
						|
```go
 | 
						|
// Create new config
 | 
						|
conf := config.NewConfig()
 | 
						|
 | 
						|
// Load flag source
 | 
						|
conf.Load(flagSource)
 | 
						|
```
 |