in vermeer/apps/structure/graph.go [232:304]
func (vg *VermeerGraph) Save(workerName string) error {
graphMetaFile := path.Join(vg.DataDir, "graph_meta")
dataDir := path.Join(vg.DataDir, "data")
if common.IsFileOrDirExist(graphMetaFile) {
b, e := readFromFile(graphMetaFile)
if e != nil {
return e
}
graph := new(VermeerGraph)
e = json.Unmarshal(b, graph)
if e != nil {
return e
}
if vg.CreateTime.Unix() > graph.CreateTime.Unix() {
e = vg.Data.Remove(dataDir)
if e != nil {
return e
}
e = vg.Data.Save(dataDir)
if e != nil {
return e
}
}
if vg.UpdateTime.Unix() > graph.UpdateTime.Unix() {
e = vg.SaveMeta(vg.DataDir)
if e != nil {
return e
}
}
if vg.UseOutEdges && !graph.UseOutEdges || vg.UseOutDegree && !graph.UseOutDegree {
e = vg.SaveMeta(vg.DataDir)
if e != nil {
return e
}
e = vg.Data.Remove(dataDir)
if e != nil {
return e
}
e = vg.Data.Save(dataDir)
if e != nil {
return e
}
}
return nil
}
if !common.IsFileOrDirExist(graphMetaFile) {
e := os.MkdirAll(vg.DataDir, os.ModePerm)
if e != nil {
return e
}
e = vg.SaveMeta(vg.DataDir)
if e != nil {
return e
}
e = vg.Data.Save(dataDir)
if e != nil {
return e
}
}
return nil
}