func()

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
}