|
|
@ -31,9 +31,10 @@ import (
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
var (
|
|
|
|
var (
|
|
|
|
src = flag.String("src", "", "Source image")
|
|
|
|
src = flag.String("src", "", "Source image")
|
|
|
|
dst = flag.String("dst", "", "Destination image")
|
|
|
|
dst = flag.String("dst", "", "Destination image")
|
|
|
|
max = flag.Int("max", 0, "Maximum number of tags to sync (0 for all tags)")
|
|
|
|
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() {
|
|
|
|
func main() {
|
|
|
@ -69,9 +70,13 @@ func main() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for _, tag := range add {
|
|
|
|
for _, tag := range add {
|
|
|
|
log.Printf("Syncing tag %q", tag)
|
|
|
|
if !*dryRun {
|
|
|
|
if err := copyTag(*src, *dst, tag, opts...); err != nil {
|
|
|
|
log.Printf("Syncing tag %q", tag)
|
|
|
|
log.Printf("Syncing tag %q: progress error: %v", tag, err)
|
|
|
|
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)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|