Skip to content

Commit b1ac5a4

Browse files
cmd: add a utility to copy catalog content (#3036)
Signed-off-by: Steve Kuznetsov <[email protected]>
1 parent 8eb4f3e commit b1ac5a4

29 files changed

+764
-87
lines changed

Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ COPY --from=builder /build/bin/olm /bin/olm
3333
COPY --from=builder /build/bin/catalog /bin/catalog
3434
COPY --from=builder /build/bin/package-server /bin/package-server
3535
COPY --from=builder /build/bin/cpb /bin/cpb
36+
COPY --from=builder /build/bin/copy-content /bin/copy-content
3637
USER 1001
3738
EXPOSE 8080
3839
EXPOSE 5443

Makefile

+4-1
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,14 @@ bin/wait: FORCE
9797
build-util-linux: arch_flags=GOOS=linux GOARCH=$(ARCH)
9898
build-util-linux: build-util
9999

100-
build-util: bin/cpb
100+
build-util: bin/cpb bin/copy-content
101101

102102
bin/cpb: FORCE
103103
CGO_ENABLED=0 $(arch_flags) go build -buildvcs=false $(MOD_FLAGS) -ldflags '-extldflags "-static"' -o $@ ./util/cpb
104104

105+
bin/copy-content: FORCE
106+
CGO_ENABLED=0 $(arch_flags) go build -buildvcs=false $(MOD_FLAGS) -ldflags '-extldflags "-static"' -o $@ ./cmd/copy-content
107+
105108
$(CMDS): version_flags=-ldflags "-X $(PKG)/pkg/version.GitCommit=$(GIT_COMMIT) -X $(PKG)/pkg/version.OLMVersion=`cat OLM_VERSION`"
106109
$(CMDS):
107110
$(arch_flags) go $(build_cmd) $(MOD_FLAGS) $(version_flags) -tags $(BUILD_TAGS) -o bin/$(shell basename $@) $@

cmd/copy-content/main.go

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package main
2+
3+
import (
4+
"flag"
5+
"fmt"
6+
"os"
7+
8+
"github.com/otiai10/copy"
9+
)
10+
11+
func main() {
12+
catalogSource := flag.String("catalog.from", "", "Path to catalog contents to copy.")
13+
catalogDestination := flag.String("catalog.to", "", "Path to where catalog contents should be copied.")
14+
cacheSource := flag.String("cache.from", "", "Path to cache contents to copy.")
15+
cacheDestination := flag.String("cache.to", "", "Path to where cache contents should be copied.")
16+
17+
for flagName, value := range map[string]*string{
18+
"catalog.from": catalogSource,
19+
"catalog.to": catalogDestination,
20+
"cache.from": cacheSource,
21+
"cache.to": cacheDestination,
22+
} {
23+
if value == nil || *value == "" {
24+
fmt.Printf("--%s is required", flagName)
25+
os.Exit(1)
26+
}
27+
}
28+
29+
for from, to := range map[string]string{
30+
*catalogSource: *catalogDestination,
31+
*cacheSource: *cacheDestination,
32+
} {
33+
if err := copy.Copy(from, to); err != nil {
34+
fmt.Printf("failed to copy %s to %s: %s\n", from, to, err)
35+
os.Exit(1)
36+
}
37+
}
38+
}

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ require (
2727
github.com/openshift/client-go v0.0.0-20220525160904-9e1acff93e4a
2828
github.com/operator-framework/api v0.17.8-0.20230908201838-28c6773d2b74
2929
github.com/operator-framework/operator-registry v1.29.0
30-
github.com/otiai10/copy v1.2.0
30+
github.com/otiai10/copy v1.12.0
3131
github.com/pkg/errors v0.9.1
3232
github.com/prometheus/client_golang v1.15.1
3333
github.com/prometheus/client_model v0.4.0

go.sum

+3-7
Original file line numberDiff line numberDiff line change
@@ -608,13 +608,9 @@ github.com/operator-framework/api v0.17.8-0.20230908201838-28c6773d2b74 h1:BNzxQ
608608
github.com/operator-framework/api v0.17.8-0.20230908201838-28c6773d2b74/go.mod h1:Wbg136l1Po6zqG2QcTN1QZ8dbT4BQvNlQDM9tmQYvz0=
609609
github.com/operator-framework/operator-registry v1.29.0 h1:HMmVTiuOAGoHLzYqR9Lr2QSOqbVzA50++ojNl2mu9f4=
610610
github.com/operator-framework/operator-registry v1.29.0/go.mod h1:4rVQu/cOuCtVt3JzKsAmwyq2lsiu9uPaH9nYNfnqj9o=
611-
github.com/otiai10/copy v1.2.0 h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k=
612-
github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw=
613-
github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE=
614-
github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs=
615-
github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo=
616-
github.com/otiai10/mint v1.3.1 h1:BCmzIS3n71sGfHB5NMNDB3lHYPz8fWSkCAErHed//qc=
617-
github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc=
611+
github.com/otiai10/copy v1.12.0 h1:cLMgSQnXBs1eehF0Wy/FAGsgDTDmAqFR7rQylBb1nDY=
612+
github.com/otiai10/copy v1.12.0/go.mod h1:rSaLseMUsZFFbsFGc7wCJnnkTAvdc5L6VWxPE4308Ww=
613+
github.com/otiai10/mint v1.5.1 h1:XaPLeE+9vGbuyEHem1JNk3bYc7KKqyI/na0/mLd/Kks=
618614
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
619615
github.com/pbnjay/strptime v0.0.0-20140226051138-5c05b0d668c9 h1:4lfz0keanz7/gAlvJ7lAe9zmE08HXxifBZJC0AdeGKo=
620616
github.com/pbnjay/strptime v0.0.0-20140226051138-5c05b0d668c9/go.mod h1:6Hr+C/olSdkdL3z68MlyXWzwhvwmwN7KuUFXGb3PoOk=

vendor/github.com/otiai10/copy/.gitignore

+7-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/otiai10/copy/README.md

+98-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)