You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2018/12/21 09:32:25 UTC
[camel-k] branch master updated: Remove the "./" prefix before
sanitizing the integration name. (#309)
This is an automated email from the ASF dual-hosted git repository.
acosentino 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 9da7fd0 Remove the "./" prefix before sanitizing the integration name. (#309)
9da7fd0 is described below
commit 9da7fd0e0d6794ef09573a0f8fb0560a0a2ca1b6
Author: crystaldust <ju...@huawei.com>
AuthorDate: Fri Dec 21 17:32:20 2018 +0800
Remove the "./" prefix before sanitizing the integration name. (#309)
Makes the paths like "./integration_name.java" work
Add the unit test file for the sanitization
---
pkg/util/kubernetes/sanitize.go | 1 +
.../kubernetes/{sanitize.go => sanitize_test.go} | 35 +++++++++-------------
2 files changed, 15 insertions(+), 21 deletions(-)
diff --git a/pkg/util/kubernetes/sanitize.go b/pkg/util/kubernetes/sanitize.go
index e3351a3..4e02170 100644
--- a/pkg/util/kubernetes/sanitize.go
+++ b/pkg/util/kubernetes/sanitize.go
@@ -30,6 +30,7 @@ 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 = strcase.KebabCase(name)
diff --git a/pkg/util/kubernetes/sanitize.go b/pkg/util/kubernetes/sanitize_test.go
similarity index 58%
copy from pkg/util/kubernetes/sanitize.go
copy to pkg/util/kubernetes/sanitize_test.go
index e3351a3..43078ae 100644
--- a/pkg/util/kubernetes/sanitize.go
+++ b/pkg/util/kubernetes/sanitize_test.go
@@ -18,27 +18,20 @@ limitations under the License.
package kubernetes
import (
- "path"
- "regexp"
- "strings"
- "unicode"
-
- "github.com/stoewer/go-strcase"
+ "testing"
)
-var disallowedChars = regexp.MustCompile(`[^a-z0-9-]`)
-
-// SanitizeName sanitizes the given name to be compatible with k8s
-func SanitizeName(name string) string {
- name = strings.Split(name, ".")[0]
- name = path.Base(name)
- name = strcase.KebabCase(name)
- name = strings.ToLower(name)
- name = disallowedChars.ReplaceAllString(name, "")
- name = strings.TrimFunc(name, isDisallowedStartEndChar)
- return name
-}
-
-func isDisallowedStartEndChar(rune rune) bool {
- return !unicode.IsLetter(rune)
+func TestSanitizeName(t *testing.T) {
+ cases := []map[string]string{
+ {"input": "./abc.java", "expect": "abc"},
+ {"input": "/path/to/abc.js", "expect": "abc"},
+ {"input": "abc.xml", "expect": "abc"},
+ {"input": "./path/to/abc.kts", "expect": "abc"},
+ }
+
+ 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)
+ }
+ }
}