Skip to content

Commit 58e945b

Browse files
committed
don't truncate project name computed by parent folder name with dots
Signed-off-by: Nicolas De Loof <[email protected]>
1 parent 8c700f3 commit 58e945b

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

cli/options.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ func ProjectFromOptions(options *ProjectOptions) (*types.Project, error) {
335335
} else {
336336
opts.Name = filepath.Base(absWorkingDir)
337337
}
338-
opts.Name = regexp.MustCompile(`(?m)[a-z0-9]+[-_a-z0-9]*`).FindString(strings.ToLower(opts.Name))
338+
opts.Name = normalizeName(opts.Name)
339339
}
340340
options.loadOptions = append(options.loadOptions, nameLoadOpt)
341341

@@ -352,6 +352,12 @@ func ProjectFromOptions(options *ProjectOptions) (*types.Project, error) {
352352
return project, nil
353353
}
354354

355+
func normalizeName(s string) string {
356+
r := regexp.MustCompile("[a-z0-9_-]")
357+
s = strings.Join(r.FindAllString(s, -1), "")
358+
return strings.TrimLeft(s, "_-")
359+
}
360+
355361
// getConfigPathsFromOptions retrieves the config files for project based on project options
356362
func getConfigPathsFromOptions(options *ProjectOptions) ([]string, error) {
357363
if len(options.ConfigPaths) != 0 {

cli/options_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,14 @@ func TestProjectName(t *testing.T) {
8282
assert.Equal(t, p.Name, "my_project")
8383
})
8484

85+
t.Run("by name contains dots", func(t *testing.T) {
86+
opts, err := NewProjectOptions([]string{"testdata/simple/compose.yaml"}, WithName("www.my.project"))
87+
assert.NilError(t, err)
88+
p, err := ProjectFromOptions(opts)
89+
assert.NilError(t, err)
90+
assert.Equal(t, p.Name, "wwwmyproject")
91+
})
92+
8593
t.Run("by working dir", func(t *testing.T) {
8694
opts, err := NewProjectOptions([]string{"testdata/simple/compose.yaml"}, WithWorkingDirectory("."))
8795
assert.NilError(t, err)

0 commit comments

Comments
 (0)