diff --git a/internal/nitro/mount_dir.go b/internal/nitro/mount_dir.go index ba621ac5..531784e8 100644 --- a/internal/nitro/mount_dir.go +++ b/internal/nitro/mount_dir.go @@ -19,6 +19,10 @@ func MountDir(name, source, target string) (*Action, error) { target = "/" + target } + if strings.HasSuffix(source, "/") { + source = strings.TrimRight(source, "/") + } + return &Action{ Type: "mount", UseSyscall: false, diff --git a/internal/nitro/mount_dir_test.go b/internal/nitro/mount_dir_test.go index eb5eabf0..1493a2e1 100644 --- a/internal/nitro/mount_dir_test.go +++ b/internal/nitro/mount_dir_test.go @@ -31,6 +31,20 @@ func TestMountDir(t *testing.T) { }, wantErr: false, }, + { + name: "mounts a directory and removes the trailing slash", + args: args{ + name: "somename", + source: "./testdata/source-folder/", + target: "/home/ubuntu/sites", + }, + want: &Action{ + Type: "mount", + UseSyscall: false, + Args: []string{"mount", "./testdata/source-folder", "somename:/home/ubuntu/sites"}, + }, + wantErr: false, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -40,8 +54,8 @@ func TestMountDir(t *testing.T) { return } if !reflect.DeepEqual(got, tt.want) { - t.Errorf("MountDir() got = %v, want %v", got, tt.want) + t.Errorf("MountDir() got = \n%v, \nwant \n%v", got, tt.want) } }) } -} \ No newline at end of file +}