golang-examples/example-protobuf/config.go

45 lines
1.1 KiB
Go

package main
/*
This simply parses the command line arguments using the default golang
package called 'flag'. This can be used as a simple template to parse
command line arguments in other programs.
It puts everything in the 'config' package which I think is a good
wrapper around the 'flags' package and doesn't need a whole mess of
global variables
*/
import "log"
import "strings"
import "io/ioutil"
import "github.com/golang/protobuf/jsonpb"
import pb "git.wit.org/jcarr/witProtobuf"
import "github.com/davecgh/go-spew/spew"
// TEST UNMARSHAL JSON TO PROTOBUF
// This is known to crash unless done exactly like this
// with strings.NewReader & 'sets'
func loadDefaultConfig(a string) pb.Config {
sets := pb.Config{}
b, err := ioutil.ReadFile("cloud-control-panel.json")
if err != nil {
log.Println("ioutil.ReadFile() ERROR =", err)
}
// log.Println("ioutil.ReadFile() b =", b)
err = jsonpb.Unmarshal(strings.NewReader(string(b)), &sets)
if err != nil {
log.Println("jsonpb.Unmarshal() ERROR =", err)
}
spew.Dump(sets)
return sets
}
func main() {
loadDefaultConfig("")
}