|
|
@@ -31,9 +31,10 @@ import (
|
|
|
)
|
|
|
|
|
|
var (
|
|
|
- src = flag.String("src", "", "Source image")
|
|
|
- dst = flag.String("dst", "", "Destination image")
|
|
|
- max = flag.Int("max", 0, "Maximum number of tags to sync (0 for all tags)")
|
|
|
+ src = flag.String("src", "", "Source image")
|
|
|
+ dst = flag.String("dst", "", "Destination image")
|
|
|
+ max = flag.Int("max", 0, "Maximum number of tags to sync (0 for all tags)")
|
|
|
+ dryRun = flag.Bool("dry-run", true, "Don't actually sync anything")
|
|
|
)
|
|
|
|
|
|
func main() {
|
|
|
@@ -69,9 +70,13 @@ func main() {
|
|
|
}
|
|
|
}
|
|
|
for _, tag := range add {
|
|
|
- log.Printf("Syncing tag %q", tag)
|
|
|
- if err := copyTag(*src, *dst, tag, opts...); err != nil {
|
|
|
- log.Printf("Syncing tag %q: progress error: %v", tag, err)
|
|
|
+ if !*dryRun {
|
|
|
+ log.Printf("Syncing tag %q", tag)
|
|
|
+ if err := copyTag(*src, *dst, tag, opts...); err != nil {
|
|
|
+ log.Printf("Syncing tag %q: progress error: %v", tag, err)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.Printf("Dry run: would sync tag %q", tag)
|
|
|
}
|
|
|
}
|
|
|
|