This is an automated email from the ASF dual-hosted git repository.
tsato pushed a commit to branch release-1.9.x
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 0816829fc518d282f8f4237edb62345d29040bd2
Author: Adriano Machado <unknown>
AuthorDate: Wed Jun 15 19:39:46 2022 -0400
Fixes `kamel local run` panic on Windows
---
pkg/cmd/util_commands.go | 9 ++++++++-
pkg/resources/resources_support.go | 20 +++++++++++++++-----
2 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/pkg/cmd/util_commands.go b/pkg/cmd/util_commands.go
index 794f49e33..04a189fce 100644
--- a/pkg/cmd/util_commands.go
+++ b/pkg/cmd/util_commands.go
@@ -22,6 +22,7 @@ import (
"fmt"
"io"
"os/exec"
+ "runtime"
"strings"
"github.com/apache/camel-k/pkg/util"
@@ -49,7 +50,13 @@ func assembleClasspathArgValue(properties []string,
dependencies []string, route
classpathContents = append(classpathContents, properties...)
classpathContents = append(classpathContents, routes...)
classpathContents = append(classpathContents, dependencies...)
- return strings.Join(classpathContents, ":")
+
+ pathSeparator := ":"
+ if runtime.GOOS == "windows" {
+ pathSeparator = ";"
+ }
+
+ return strings.Join(classpathContents, pathSeparator)
}
func assembleIntegrationRunCommand(ctx context.Context, properties []string,
dependencies []string, routes []string, propertiesDir string, stdout, stderr
io.Writer, local bool) (*exec.Cmd, error) {
diff --git a/pkg/resources/resources_support.go
b/pkg/resources/resources_support.go
index 46a8c36b4..167ccce13 100644
--- a/pkg/resources/resources_support.go
+++ b/pkg/resources/resources_support.go
@@ -22,6 +22,7 @@ import (
"io/ioutil"
"os"
"path/filepath"
+ "runtime"
"strings"
"text/template"
@@ -46,7 +47,7 @@ func Resource(name string) ([]byte, error) {
name = "/" + name
}
- file, err := assets.Open(name)
+ file, err := assets.Open(fixPath(name))
if err != nil {
return nil, errors.Wrapf(err, "cannot access resource file %s",
name)
}
@@ -85,7 +86,7 @@ func TemplateResource(name string, params interface{})
(string, error) {
// DirExists tells if a directory exists and can be listed for files.
func DirExists(dirName string) bool {
- if _, err := assets.Open(dirName); err != nil {
+ if _, err := assets.Open(fixPath(dirName)); err != nil {
return false
}
return true
@@ -103,8 +104,9 @@ func WithPrefix(pathPrefix string) ([]string, error) {
var res []string
for i := range paths {
- if result, _ := filepath.Match(pathPrefix+"*", paths[i]);
result {
- res = append(res, paths[i])
+ path := fixPath(paths[i])
+ if result, _ := filepath.Match(pathPrefix+"*", path); result {
+ res = append(res, path)
}
}
@@ -113,7 +115,7 @@ func WithPrefix(pathPrefix string) ([]string, error) {
// Resources lists all file names in the given path (starts with '/').
func Resources(dirName string) ([]string, error) {
- dir, err := assets.Open(dirName)
+ dir, err := assets.Open(fixPath(dirName))
if err != nil {
if os.IsNotExist(err) {
return nil, nil
@@ -146,3 +148,11 @@ func Resources(dirName string) ([]string, error) {
return res, dir.Close()
}
+
+func fixPath(path string) string {
+ if runtime.GOOS == "windows" {
+ path = strings.ReplaceAll(path, "\\", "/")
+ }
+
+ return path
+}