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.com/wit/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("../resources/protobuf-config.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("") }