make location of last.state.txt configuratble

master
Oliver Tonnhofer 2014-04-01 13:16:27 +02:00
parent 62cdbcc3e3
commit e4d1156ff8
3 changed files with 19 additions and 3 deletions

View File

@ -11,6 +11,7 @@ import (
type Config struct { type Config struct {
CacheDir string `json:"cachedir"` CacheDir string `json:"cachedir"`
DiffDir string `json:"diffdir"`
Connection string `json:"connection"` Connection string `json:"connection"`
MappingFile string `json:"mapping"` MappingFile string `json:"mapping"`
LimitTo string `json:"limitto"` LimitTo string `json:"limitto"`
@ -37,6 +38,7 @@ var DiffFlags = flag.NewFlagSet("diff", flag.ExitOnError)
type _BaseOptions struct { type _BaseOptions struct {
Connection string Connection string
CacheDir string CacheDir string
DiffDir string
MappingFile string MappingFile string
Srid int Srid int
LimitTo string LimitTo string
@ -101,6 +103,14 @@ func (o *_BaseOptions) updateFromConfig() error {
if o.CacheDir == defaultCacheDir { if o.CacheDir == defaultCacheDir {
o.CacheDir = conf.CacheDir o.CacheDir = conf.CacheDir
} }
if o.DiffDir == "" {
if conf.DiffDir == "" {
// use CacheDir for backwards compatibility
o.DiffDir = o.CacheDir
} else {
o.DiffDir = conf.DiffDir
}
}
return nil return nil
} }
@ -133,6 +143,7 @@ var ImportOptions = _ImportOptions{}
func addBaseFlags(flags *flag.FlagSet) { func addBaseFlags(flags *flag.FlagSet) {
flags.StringVar(&BaseOptions.Connection, "connection", "", "connection parameters") flags.StringVar(&BaseOptions.Connection, "connection", "", "connection parameters")
flags.StringVar(&BaseOptions.CacheDir, "cachedir", defaultCacheDir, "cache directory") flags.StringVar(&BaseOptions.CacheDir, "cachedir", defaultCacheDir, "cache directory")
flags.StringVar(&BaseOptions.DiffDir, "diffdir", "", "diff directory for last.state.txt")
flags.StringVar(&BaseOptions.MappingFile, "mapping", "", "mapping file") flags.StringVar(&BaseOptions.MappingFile, "mapping", "", "mapping file")
flags.IntVar(&BaseOptions.Srid, "srid", defaultSrid, "srs id") flags.IntVar(&BaseOptions.Srid, "srid", defaultSrid, "srs id")
flags.StringVar(&BaseOptions.LimitTo, "limitto", "", "limit to geometries") flags.StringVar(&BaseOptions.LimitTo, "limitto", "", "limit to geometries")

View File

@ -29,7 +29,7 @@ func Update(oscFile string, geometryLimiter *limit.Limiter, expireor expire.Expi
if err != nil { if err != nil {
return err return err
} }
lastState, err := diffstate.ParseLastState(config.BaseOptions.CacheDir) lastState, err := diffstate.ParseLastState(config.BaseOptions.DiffDir)
if err != nil { if err != nil {
log.Warn(err) log.Warn(err)
} }
@ -300,7 +300,7 @@ For:
if lastState != nil { if lastState != nil {
state.Url = lastState.Url state.Url = lastState.Url
} }
err = diffstate.WriteLastState(config.BaseOptions.CacheDir, state) err = diffstate.WriteLastState(config.BaseOptions.DiffDir, state)
if err != nil { if err != nil {
log.Warn(err) // warn only log.Warn(err) // warn only
} }

View File

@ -4,6 +4,7 @@ Package import_ provides the import sub command initial imports.
package import_ package import_
import ( import (
"os"
"path" "path"
"imposm3/cache" "imposm3/cache"
@ -119,7 +120,11 @@ func Import() {
log.StopStep(step) log.StopStep(step)
diffstate := state.FromPbf(pbfFile) diffstate := state.FromPbf(pbfFile)
if diffstate != nil { if diffstate != nil {
diffstate.WriteToFile(path.Join(config.BaseOptions.CacheDir, "last.state.txt")) os.MkdirAll(config.BaseOptions.DiffDir, 0755)
err := diffstate.WriteToFile(path.Join(config.BaseOptions.DiffDir, "last.state.txt"))
if err != nil {
log.Print("error writing last.state.txt: ", err)
}
} }
} }