Skip to content

Commit b08646b

Browse files
authored
Merge pull request #2033 from FabianKramm/master
fix: allow __ vars
2 parents a1c6e67 + cde2f11 commit b08646b

4 files changed

Lines changed: 99 additions & 4 deletions

File tree

cmd/run.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,12 +347,16 @@ func NewSpecificRunCommand(f factory.Factory, globalFlags *flags.GlobalFlags, co
347347
Short: description,
348348
Long: longDescription,
349349
Args: cobra.ArbitraryArgs,
350-
RunE: func(cobraCmd *cobra.Command, _ []string) error {
350+
RunE: func(cobraCmd *cobra.Command, originalArgs []string) error {
351351
args, err := ParseArgs(cobraCmd, cmd.GlobalFlags, f.GetLog())
352352
if err != nil {
353353
return err
354354
}
355355

356+
if cmd.ConfigPath != "" {
357+
return cobraCmd.Parent().RunE(cobraCmd, originalArgs)
358+
}
359+
356360
plugin.SetPluginCommand(cobraCmd, args)
357361
return cmd.Run(f, args)
358362
},

e2e/tests/config/testdata/vars/devspace.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ version: v1beta10
22
vars:
33
- name: TEST_OVERRIDE
44
value: devspace.yaml
5-
- name: NOT_USED
5+
- name: NOT__USED
66
- name: TEST_1
77
- name: TEST_2
88
command: "echo test2"

pkg/util/encoding/encoding.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ func Convert(ID string) string {
3434
return SafeConcatName(ID)
3535
}
3636

37-
var UnsafeNameRegEx = regexp.MustCompile(`^[a-z0-9]+(?:-?[a-z0-9]+)*$`)
38-
var UnsafeUpperNameRegEx = regexp.MustCompile(`^[A-Za-z0-9]+(?:[\-_]?[A-Za-z0-9])*$`)
37+
var UnsafeNameRegEx = regexp.MustCompile(`^(([a-z0-9][a-z0-9\-]*[a-z0-9])|([a-z0-9]))$`)
38+
var UnsafeUpperNameRegEx = regexp.MustCompile(`^(([A-Za-z0-9][A-Za-z0-9\-_]*[A-Za-z0-9])|([A-Za-z0-9]))$`)
3939

4040
func IsUnsafeUpperName(unsafeName string) bool {
4141
return !UnsafeUpperNameRegEx.MatchString(unsafeName)

pkg/util/encoding/encoding_test.go

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
package encoding
2+
3+
import (
4+
"gotest.tools/assert"
5+
"testing"
6+
)
7+
8+
type testCase struct {
9+
name string
10+
safe bool
11+
}
12+
13+
func TestIsUnsafeUpperName(t *testing.T) {
14+
cases := []testCase{
15+
{
16+
name: "a",
17+
safe: true,
18+
},
19+
{
20+
name: "a--b",
21+
safe: true,
22+
},
23+
{
24+
name: "a- -b",
25+
safe: false,
26+
},
27+
{
28+
name: "a-$-b",
29+
safe: false,
30+
},
31+
{
32+
name: "a-_-b",
33+
safe: false,
34+
},
35+
{
36+
name: "-ab",
37+
safe: false,
38+
},
39+
{
40+
name: "AB",
41+
safe: false,
42+
},
43+
}
44+
upperCases := []testCase{
45+
{
46+
name: "a",
47+
safe: true,
48+
},
49+
{
50+
name: "a-_B",
51+
safe: true,
52+
},
53+
{
54+
name: "a--b",
55+
safe: true,
56+
},
57+
{
58+
name: "A__B",
59+
safe: true,
60+
},
61+
{
62+
name: "A_ _B",
63+
safe: false,
64+
},
65+
{
66+
name: "A_%_B",
67+
safe: false,
68+
},
69+
{
70+
name: "A_%$",
71+
safe: false,
72+
},
73+
{
74+
name: "-ABV",
75+
safe: false,
76+
},
77+
{
78+
name: "ABV_",
79+
safe: false,
80+
},
81+
}
82+
83+
for _, c := range cases {
84+
unsafe := IsUnsafeName(c.name)
85+
assert.Equal(t, !unsafe, c.safe, "expect "+c.name)
86+
}
87+
for _, c := range upperCases {
88+
unsafe := IsUnsafeUpperName(c.name)
89+
assert.Equal(t, !unsafe, c.safe, "expect upper "+c.name)
90+
}
91+
}

0 commit comments

Comments
 (0)