refactor diff state write

master
Oliver Tonnhofer 2016-12-07 14:20:21 +01:00
parent fcb03920ae
commit c8d99af5d6
2 changed files with 10 additions and 14 deletions

View File

@ -5,7 +5,6 @@ package import_
import (
"os"
"path"
"github.com/omniscale/imposm3/cache"
"github.com/omniscale/imposm3/config"
@ -131,7 +130,7 @@ func Import() {
log.Print("error parsing diff state form PBF", err)
} else if diffstate != nil {
os.MkdirAll(config.BaseOptions.DiffDir, 0755)
err := diffstate.WriteToFile(path.Join(config.BaseOptions.DiffDir, "last.state.txt"))
err := state.WriteLastState(config.BaseOptions.DiffDir, diffstate)
if err != nil {
log.Print("error writing last.state.txt: ", err)
}

View File

@ -28,15 +28,7 @@ func (d DiffState) String() string {
return fmt.Sprintf("Diff #%d from %s", d.Sequence, d.Time.Local())
}
func (d DiffState) WriteToFile(file string) error {
f, err := os.Create(file)
if err != nil {
return err
}
defer f.Close()
writer := bufio.NewWriter(f)
func (d DiffState) Write(w io.Writer) error {
lines := []string{}
lines = append(lines, "timestamp="+d.Time.Format(timestampFormat))
if d.Sequence != 0 {
@ -45,17 +37,22 @@ func (d DiffState) WriteToFile(file string) error {
lines = append(lines, "replicationUrl="+d.Url)
for _, line := range lines {
_, err = writer.WriteString(line + "\n")
_, err := w.Write([]byte(line + "\n"))
if err != nil {
return err
}
}
return writer.Flush()
return nil
}
func WriteLastState(cacheDir string, state *DiffState) error {
stateFile := path.Join(cacheDir, "last.state.txt")
return state.WriteToFile(stateFile)
f, err := os.Create(stateFile)
if err != nil {
return err
}
defer f.Close()
return state.Write(f)
}
func FromOscGz(oscFile string) (*DiffState, error) {