Skip to content

Commit 9eb2c38

Browse files
authored
Merge pull request #2136 from tukobadnyanoba/allow-underscores-in-command-names
Allow underscores in command names
2 parents 467178b + d52a93c commit 9eb2c38

3 files changed

Lines changed: 15 additions & 2 deletions

File tree

pkg/devspace/config/versions/v1beta11/upgrade.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,7 @@ func (c *Config) Upgrade(log log.Logger) (config.Config, error) {
516516
// commands
517517
nextConfig.Commands = map[string]*next.CommandConfig{}
518518
for _, command := range c.Commands {
519-
commandName := encoding.Convert(command.Name)
519+
commandName := encoding.ConvertCommands(command.Name)
520520
nextConfig.Commands[commandName] = &next.CommandConfig{
521521
Name: commandName,
522522
Command: command.Command,

pkg/devspace/config/versions/validate.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ func validateDependencies(config *latest.Config) error {
154154

155155
func validateCommands(config *latest.Config) error {
156156
for key, command := range config.Commands {
157-
if encoding.IsUnsafeName(command.Name) {
157+
if encoding.IsUnsafeCommandName(command.Name) {
158158
return fmt.Errorf("commands.%s has to match the following regex: %v", command.Name, encoding.UnsafeNameRegEx.String())
159159
}
160160
if command.Command == "" {

pkg/util/encoding/encoding.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ func SafeConcatNameMax(name []string, max int) string {
2626

2727
var convertRegEx1 = regexp.MustCompile(`[\@/\.\:\s]+`)
2828
var convertRegEx2 = regexp.MustCompile(`[^a-z0-9\-]+`)
29+
var convertRegEx3 = regexp.MustCompile(`[^a-z0-9\-_]+`)
2930

3031
func Convert(ID string) string {
3132
ID = strings.ToLower(ID)
@@ -34,6 +35,14 @@ func Convert(ID string) string {
3435
return SafeConcatName(ID)
3536
}
3637

38+
func ConvertCommands(ID string) string {
39+
ID = strings.ToLower(ID)
40+
ID = convertRegEx1.ReplaceAllString(ID, "-")
41+
ID = convertRegEx3.ReplaceAllString(ID, "")
42+
return SafeConcatName(ID)
43+
}
44+
45+
var UnsafeCommandNameRegEx = regexp.MustCompile(`^(([a-z0-9][a-z0-9\-_]*[a-z0-9])|([a-z0-9]))$`)
3746
var UnsafeNameRegEx = regexp.MustCompile(`^(([a-z0-9][a-z0-9\-]*[a-z0-9])|([a-z0-9]))$`)
3847
var UnsafeUpperNameRegEx = regexp.MustCompile(`^(([A-Za-z0-9][A-Za-z0-9\-_]*[A-Za-z0-9])|([A-Za-z0-9]))$`)
3948

@@ -44,3 +53,7 @@ func IsUnsafeUpperName(unsafeName string) bool {
4453
func IsUnsafeName(unsafeName string) bool {
4554
return !UnsafeNameRegEx.MatchString(unsafeName)
4655
}
56+
57+
func IsUnsafeCommandName(unsafeCommandName string) bool {
58+
return !UnsafeCommandNameRegEx.MatchString(unsafeCommandName)
59+
}

0 commit comments

Comments
 (0)