diff --git a/cli/migr8.go b/cli/migr8.go index 6bf7873..e574c0a 100644 --- a/cli/migr8.go +++ b/cli/migr8.go @@ -9,30 +9,39 @@ import ( ) type Config struct { - DBs [2]storage.DB - Dry bool + DBs [2]storage.DB + NSs [2]string + Dry bool + args *args.ArgSet } func (config Config) String() string { - return fmt.Sprintf("{1:%T 2:%T Dry:%v}", config.DBs[0], config.DBs[1], config.Dry) + return fmt.Sprintf( + "{1:%T 1NS:%s 2:%T 2NS:%s Dry:%v}", + config.DBs[0], + config.NSs[0], + config.DBs[1], + config.NSs[1], + config.Dry, + ) } func main() { c := config() resolve.DefaultNamespace = "" - keys, err := c.DBs[0].List(nil) + keys, err := c.DBs[0].List([]string{c.NSs[0]}) if err != nil { panic(err) } log.Println(c) for _, key := range keys { - v, err := c.DBs[0].Get(key) + v, err := c.DBs[0].Get(key, c.NSs[0]) if err != nil { panic(err) } if c.Dry { - log.Printf("c.DBs[1].Set(%s, %s)", key, v) - } else if err := c.DBs[1].Set(key, v); err != nil { + log.Printf("%T@%s Set(%s, %s, %s)", c.DBs[1], c.args.GetString("2addr"), key, v, c.NSs[1]) + } else if err := c.DBs[1].Set(key, v, c.NSs[1]); err != nil { panic(err) } } @@ -46,6 +55,7 @@ func config() Config { as.Append(args.STRING, s+"pwd", s+"'s password", "") as.Append(args.STRING, s+"addr", s+"'s addr", "") as.Append(args.STRING, s+"type", s+"'s type", "") + as.Append(args.STRING, s+"ns", s+"'s namespace", resolve.DefaultNamespace) } as.Append(args.BOOL, "dry", "dry run", false) if err := as.Parse(); err != nil { @@ -67,7 +77,9 @@ func config() Config { } return Config{ - DBs: stores, - Dry: as.GetBool("dry"), + DBs: stores, + Dry: as.GetBool("dry"), + NSs: [2]string{as.GetString("1ns"), as.GetString("2ns")}, + args: as, } }