Confection
Confection is a configuration manager plugin for Go projects.
This project is outdated
Please use Secondly instead.
Configuration
First you need to add tags to fields of the config struct.
json— required for proper serializationtitle— human readable field name (optional)attrs— field attributes:required,readonly,ignored; separated by commaoptions— list of supported values, separated by comma
Required attributes will block manager.RequireConfig() call until field gets a value
Ignored attributes are not displayed.
Readonly attributes are displayed but disabled.
You also need to pass an unmarshalling function as shown below.
package main
import (
"encoding/json"
"flag"
"fmt"
"github.com/localhots/confection"
)
type (
Config struct {
AppName string `json:"app_name" attrs:"required" title:"Application Name"`
BuildNumber int `json:"build_number" attrs:"readonly" title:"Build Number"`
}
)
func init() {
confection.SetupFlags()
flag.Parse()
}
func main() {
conf := Config{}
manager := confection.New(conf, func(b []byte) interface{} {
var newConf Config
if err := json.Unmarshal(b, &newConf); err != nil {
panic(err)
}
return newConf
})
manager.StartServer()
manager.RequireConfig()
fmt.Println("Ready to work!")
}
Demo Screenshot
Description
Languages
JavaScript
52.1%
Go
40%
HTML
7.9%