39 lines
935 B
Go
39 lines
935 B
Go
package confage_test
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
|
|
"go.jolheiser.com/confage"
|
|
|
|
|
|
)
|
|
|
|
func Example_config() {
|
|
const secretKey = "AGE-SECRET-KEY-1AN83H8JECDKHSD2RN70WU8RQYYH3C309UUYQQ0EPQNJR3ZXRDHESTUCCM4" // age1ynmpzgvrqj3r6z39kp3p852afe3nkc3neem80vgq96jt2zhesezq8yhn02
|
|
|
|
cfg := &Config{
|
|
Password: confage.MustNew(secretKey, ""),
|
|
}
|
|
|
|
if err := json.Unmarshal(config, &cfg); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
fmt.Println(cfg.Password.Value)
|
|
// Output:
|
|
// bar
|
|
}
|
|
|
|
// Example config struct
|
|
type Config struct {
|
|
Username string
|
|
Password confage.Type[string]
|
|
}
|
|
|
|
// config.json living on disk
|
|
var config = []byte(`{
|
|
"username": "foo",
|
|
"password": "YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0b3pzdTVtcnBBUFV3bnNsa2RIYlhTVGVYeXlHcHpIbEpMR3ZwcWxHMmtjClc5ald4MHZhdFFKY3NmS0R5bFpXY1VGa1RKeWxHaGVzR3FhS1B1NHgydUkKLS0tIEJYRnhMNm12aE14bUU5bGNPVFBJcHBWZDJBeWFMMVdMUGdyVXErOVFuaWsK3F0DfPH+Ud50XIBoDR2D/+/PMoqNp9O2R6BdBLTLyiENJYrxGxo="
|
|
}`)
|