This is an automated email from the ASF dual-hosted git repository.
lburgazzoli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git
The following commit(s) were added to refs/heads/master by this push:
new c5777c3 fix: Improve how SanitizeName handles paths and URLs
c5777c3 is described below
commit c5777c33b958b07186dc54facaabfad80ac8077c
Author: James Netherton <[email protected]>
AuthorDate: Wed Mar 13 09:06:59 2019 +0000
fix: Improve how SanitizeName handles paths and URLs
fixes #548
---
pkg/util/kubernetes/sanitize.go | 3 +--
pkg/util/kubernetes/sanitize_test.go | 6 +++++-
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/pkg/util/kubernetes/sanitize.go b/pkg/util/kubernetes/sanitize.go
index 46428d9..fd6bef7 100644
--- a/pkg/util/kubernetes/sanitize.go
+++ b/pkg/util/kubernetes/sanitize.go
@@ -30,9 +30,8 @@ var disallowedChars = regexp.MustCompile(`[^a-z0-9-]`)
// SanitizeName sanitizes the given name to be compatible with k8s
func SanitizeName(name string) string {
- name = strings.TrimPrefix(name, "./")
- name = strings.Split(name, ".")[0]
name = path.Base(name)
+ name = strings.Split(name, ".")[0]
name = scase.KebabCase(name)
name = strings.ToLower(name)
name = disallowedChars.ReplaceAllString(name, "")
diff --git a/pkg/util/kubernetes/sanitize_test.go
b/pkg/util/kubernetes/sanitize_test.go
index 608b612..839bf05 100644
--- a/pkg/util/kubernetes/sanitize_test.go
+++ b/pkg/util/kubernetes/sanitize_test.go
@@ -24,16 +24,20 @@ import (
func TestSanitizeName(t *testing.T) {
cases := []map[string]string{
{"input": "./abc.java", "expect": "abc"},
+ {"input": "../../abc.java", "expect": "abc"},
{"input": "/path/to/abc.js", "expect": "abc"},
{"input": "abc.xml", "expect": "abc"},
{"input": "./path/to/abc.kts", "expect": "abc"},
{"input": "fooToBar.groovy", "expect": "foo-to-bar"},
{"input": "foo-to-bar", "expect": "foo-to-bar"},
+ {"input": "http://foo.bar.com/cheese/wine/beer/abc.java",
"expect": "abc"},
+ {"input": "http://foo.bar.com/cheese", "expect": "cheese"},
+ {"input": "http://foo.bar.com", "expect": "foo"},
}
for _, c := range cases {
if name := SanitizeName(c["input"]); name != c["expect"] {
- t.Errorf("result of %s should be %s, instead of %s",
c["input"], c["output"], name)
+ t.Errorf("result of %s should be %s, instead of %s",
c["input"], c["expect"], name)
}
}
}