func (cfg *Config) DumpFile(fileName string) error { var b bytes.Buffer if err := cfg.Dump(&b); err != nil { return err } return ioutil2.WriteFileAtomic(fileName, b.Bytes(), 0644) }
func (m *masterInfo) Save(force bool) error { m.l.Lock() defer m.l.Unlock() n := time.Now() if !force && n.Sub(m.lastSaveTime) < time.Second { return nil } var buf bytes.Buffer e := toml.NewEncoder(&buf) e.Encode(m) var err error if err = ioutil2.WriteFileAtomic(m.name, buf.Bytes(), 0644); err != nil { log.Errorf("canal save master info to file %s err %v", m.name, err) } m.lastSaveTime = n return errors.Trace(err) }