8000 GitHub - davidwalter0/go-autocfg
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

davidwalter0/go-autocfg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notes

TOC

autocfg

autocfg example

config.json

{
    "vault-addr": "https://vault.localhost",
    "role": "ae6...",
    "secret": "4f2..."
}

simple go program

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)
}

build and run

(
    # 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

go doc --all ./

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

0