package config import ( "errors" "os" "go.wit.com/log" "google.golang.org/protobuf/proto" ) // loads foo.proto from ~/.cache//foo.pb func LoadAppnameCache(pb proto.Message, appname string) error { protoname, err := GetProtobufName(pb) // defined in the foo.proto file if err != nil { return err } // Get ~/.cache/appname/protoname.text fullname := makeCacheFilename(appname, protoname) // get the current filename in the protobuf file curfilename, err := GetFilename(pb) if err != nil { return err } if curfilename == "" { // log.Printf("ConfigLoad() read in %s\n", fullname) } if !Exists(fullname) { SetFilename(pb, fullname) return os.ErrNotExist } err = loadPB(pb, fullname) if err != nil { return ErrMarshal } // If the cache file is new or has moved, this updates it to correct filename // (the filename is what is used by pb.Save() if curfilename != fullname { _, err := SetFilename(pb, fullname) if err != nil { log.Info("FILENAME COULD NOT BE SET old=", curfilename) log.Info("FILENAME COULD NOT BE SET new=", fullname) return errors.Join(err, errors.New("something is wrong in lib/config")) } } return nil }