You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ts...@apache.org on 2022/06/17 03:54:59 UTC

[camel-k] 01/02: Fixes `kamel local run` panic on Windows

This is an automated email from the ASF dual-hosted git repository.

tsato pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit df35c60f20f4860af5bb662abd5e6cbaa699e934
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           |  3 ++-
 pkg/resources/resources_support.go | 16 +++++++++++-----
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/pkg/cmd/util_commands.go b/pkg/cmd/util_commands.go
index 794f49e33..7f0252a3f 100644
--- a/pkg/cmd/util_commands.go
+++ b/pkg/cmd/util_commands.go
@@ -21,6 +21,7 @@ import (
 	"context"
 	"fmt"
 	"io"
+	"os"
 	"os/exec"
 	"strings"
 
@@ -49,7 +50,7 @@ func assembleClasspathArgValue(properties []string, dependencies []string, route
 	classpathContents = append(classpathContents, properties...)
 	classpathContents = append(classpathContents, routes...)
 	classpathContents = append(classpathContents, dependencies...)
-	return strings.Join(classpathContents, ":")
+	return strings.Join(classpathContents, string(os.PathListSeparator))
 }
 
 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..684fab2f9 100644
--- a/pkg/resources/resources_support.go
+++ b/pkg/resources/resources_support.go
@@ -20,6 +20,7 @@ package resources
 import (
 	"bytes"
 	"io/ioutil"
+	"net/http"
 	"os"
 	"path/filepath"
 	"strings"
@@ -46,7 +47,7 @@ func Resource(name string) ([]byte, error) {
 		name = "/" + name
 	}
 
-	file, err := assets.Open(name)
+	file, err := openAsset(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 := openAsset(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 := filepath.FromSlash(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 := openAsset(dirName)
 	if err != nil {
 		if os.IsNotExist(err) {
 			return nil, nil
@@ -146,3 +148,7 @@ func Resources(dirName string) ([]string, error) {
 
 	return res, dir.Close()
 }
+
+func openAsset(path string) (http.File, error) {
+	return assets.Open(filepath.FromSlash(path))
+}