From 44be47583b91f737a2635e085c72e5240aedf0c7 Mon Sep 17 00:00:00 2001 From: Oliver Tonnhofer Date: Mon, 15 Sep 2014 14:07:27 +0200 Subject: [PATCH] add -diff-state-before option to set initial diff sequence before --- config/config.go | 3 +++ diff/state/state.go | 6 +++--- import_/import.go | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/config/config.go b/config/config.go index 06ca89b..9a47fc2 100644 --- a/config/config.go +++ b/config/config.go @@ -7,6 +7,7 @@ import ( "fmt" "log" "os" + "time" ) type Config struct { @@ -135,6 +136,7 @@ type _ImportOptions struct { DeployProduction bool RevertDeploy bool RemoveBackup bool + DiffStateBefore time.Duration } var BaseOptions = _BaseOptions{} @@ -183,6 +185,7 @@ func init() { ImportFlags.BoolVar(&ImportOptions.DeployProduction, "deployproduction", false, "deploy production") ImportFlags.BoolVar(&ImportOptions.RevertDeploy, "revertdeploy", false, "revert deploy to production") ImportFlags.BoolVar(&ImportOptions.RemoveBackup, "removebackup", false, "remove backups from deploy") + ImportFlags.DurationVar(&ImportOptions.DiffStateBefore, "diff-state-before", 2*time.Hour, "set initial diff sequence before") } func ParseImport(args []string) { diff --git a/diff/state/state.go b/diff/state/state.go index a1f608a..a982d7c 100644 --- a/diff/state/state.go +++ b/diff/state/state.go @@ -79,7 +79,7 @@ func ParseFromOsc(oscFile string) (*DiffState, error) { return ParseFile(stateFile) } -func FromPbf(pbfFile *pbf.Pbf) *DiffState { +func FromPbf(pbfFile *pbf.Pbf, before time.Duration) *DiffState { var timestamp time.Time if pbfFile.Header.Time.Unix() != 0 { timestamp = pbfFile.Header.Time @@ -99,8 +99,8 @@ func FromPbf(pbfFile *pbf.Pbf) *DiffState { return nil } - // start two hours earlier - seq -= 120 + // start earlier + seq -= int32(before.Minutes()) return &DiffState{Time: timestamp, Url: replicationUrl, Sequence: seq} } diff --git a/import_/import.go b/import_/import.go index 9ec3578..6248924 100644 --- a/import_/import.go +++ b/import_/import.go @@ -123,7 +123,7 @@ func Import() { osmCache.Close() log.StopStep(step) if config.ImportOptions.Diff { - diffstate := state.FromPbf(pbfFile) + diffstate := state.FromPbf(pbfFile, config.ImportOptions.DiffStateBefore) if diffstate != nil { os.MkdirAll(config.BaseOptions.DiffDir, 0755) err := diffstate.WriteToFile(path.Join(config.BaseOptions.DiffDir, "last.state.txt"))