{
"vault-addr": "https://vault.localhost",
"role": "ae6...",
"secret": "4f2..."
}
package main
import (
"fmt"
"os"
"path"
"github.com/davidwalter0/go-autocfg"
)
var pgm = path.Base(os.Args[0])
// App config options
type App struct {
VaultAddr string `json:"vault-addr"`
Role string `json:"role"`
Secret string `json:"secret"`
}
var app = &App{}
var text []byte
func main() {
fmt.Printf("Usage %s\n", pgm)
autocfg.Generator(app, true)
autocfg.SetMode(autocfg.Indirect)
autocfg.Configure(app)
autocfg.Dump(app)
autocfg.Usage(pgm)
autocfg.Reset()
autocfg.SetMode(autocfg.Direct | autocfg.Union)
autocfg.Configure(app)
autocfg.Dump(app)
autocfg.Usage(pgm)
}
(
# echo VAULT_ADDR=${VAULT_ADDR}
unset VAULT_ADDR
cd cmd/example-autocfg/
env CGO_ENABLED=0 go build -v -o config
env CGO_ENABLED=0 go build -v
# ./config --help 2>&1
./config
export VAULT_ADDR=https://vault.env.var
./example-autocfg --vault-addr https://vault-flag --role role-flag --secret secret-flag
echo VAULT_ADDR=${VAULT_ADDR}
./example-autocfg
unset VAULT_ADDR
echo VAULT_ADDR=${VAULT_ADDR}
./example-autocfg
) 2>&1
go doc --all ./