This is an automated email from the ASF dual-hosted git repository. jpoth pushed a commit to branch release-1.9.x in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit add82a8af0266b2a6bba2c9deb0556ef6465d656 Author: John Poth <[email protected]> AuthorDate: Thu May 12 12:13:52 2022 +0200 Fix #3257: work with relative paths on windows to avoid extra semicolon (cherry picked from commit 89794bfad8184e6f2553ed039892bf512e2de9ea) --- pkg/cmd/run.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/pkg/cmd/run.go b/pkg/cmd/run.go index 247d9e1a5..b32fc6f33 100644 --- a/pkg/cmd/run.go +++ b/pkg/cmd/run.go @@ -39,6 +39,7 @@ import ( "path/filepath" "reflect" "regexp" + runtimeos "runtime" "strings" "syscall" @@ -952,6 +953,15 @@ func extractGav(src *zip.File, localPath string) (maven.Dependency, bool) { func uploadAsMavenArtifact(dependency maven.Dependency, path string, platform *v1.IntegrationPlatform, ns string, options spectrum.Options) error { artifactHTTPPath := getArtifactHTTPPath(dependency, platform, ns) options.Target = fmt.Sprintf("%s/%s:%s", platform.Spec.Build.Registry.Address, artifactHTTPPath, dependency.Version) + if runtimeos.GOOS == "windows" { + // workaround for https://github.com/container-tools/spectrum/issues/8 + // work with relative paths instead + rel, err := getRelativeToWorkingDirectory(path) + if err != nil { + return err + } + path = rel + } _, err := spectrum.Build(options, fmt.Sprintf("%s:.", path)) if err != nil { return err @@ -960,6 +970,23 @@ func uploadAsMavenArtifact(dependency maven.Dependency, path string, platform *v return uploadChecksumFiles(path, options, platform, artifactHTTPPath, dependency) } +// Deprecated: workaround for https://github.com/container-tools/spectrum/issues/8 +func getRelativeToWorkingDirectory(path string) (string, error) { + wd, err := os.Getwd() + if err != nil { + return "", err + } + abs, err := filepath.Abs(path) + if err != nil { + return "", err + } + path, err = filepath.Rel(wd, abs) + if err != nil { + return "", err + } + return path, nil +} + // Currently swallows errors because our Project model is incomplete. // Most of the time it is irrelevant for our use case (GAV). // nolint:errcheck
