Skip to content

Commit 3d1a259

Browse files
committed
prohibit creation of a new template in non-emty directory
1 parent 4b71e1d commit 3d1a259

File tree

2 files changed

+3
-64
lines changed

2 files changed

+3
-64
lines changed

cli/init.go

+3-38
Original file line numberDiff line numberDiff line change
@@ -203,28 +203,6 @@ func readDirectories(path string) ([]string, error) {
203203
return directories, nil
204204
}
205205

206-
func cleanDirectory(dir string) error {
207-
d, err := os.Open(dir)
208-
if err != nil {
209-
return err
210-
}
211-
defer d.Close()
212-
213-
names, err := d.Readdirnames(-1)
214-
if err != nil {
215-
return err
216-
}
217-
218-
for _, name := range names {
219-
err = os.RemoveAll(filepath.Join(dir, name))
220-
if err != nil {
221-
return err
222-
}
223-
}
224-
225-
return nil
226-
}
227-
228206
func copyDir(src string, dst string) error {
229207
return filepath.Walk(src, func(path string, info os.FileInfo, err error) error {
230208
if err != nil {
@@ -376,7 +354,7 @@ func initCommand() *cobra.Command {
376354

377355
if !isTemplateFound {
378356
cmd.SilenceUsage = true
379-
cmd.Printf("Template %s is not supported.\n\nAvailable templates:\n %s", wantedTemplate, templatesList)
357+
cmd.Printf("Template %s is not supported.\n\nAvailable templates:\n%s", wantedTemplate, templatesList)
380358
return nil
381359
}
382360

@@ -407,25 +385,12 @@ func initCommand() *cobra.Command {
407385
// check if the if directory exists and is empty
408386
if exists {
409387
isEmpty, err := isDirectoryEmpty(directory)
388+
cmd.SilenceUsage = true
410389
if err != nil {
411-
cmd.SilenceUsage = true
412390
return fmt.Errorf("failed to check if directory is empty: %w", err)
413391
}
414392
if !isEmpty {
415-
cmd.Printf("Directory %v is not empty. Do you want to overwrite it? [y/N]\n", directory)
416-
417-
var response string
418-
fmt.Scanln(&response)
419-
420-
if strings.ToLower(response) == "y" {
421-
err := cleanDirectory(directory)
422-
if err != nil {
423-
cmd.SilenceUsage = true
424-
return fmt.Errorf("failed to clean directory: %w", err)
425-
}
426-
} else {
427-
return nil
428-
}
393+
return fmt.Errorf("could not create template in %s: directory is not empty", directory)
429394
}
430395
}
431396
path, err := filepath.Abs(directory)

cli/init_test.go

-26
Original file line numberDiff line numberDiff line change
@@ -133,32 +133,6 @@ func TestInitCommand(t *testing.T) {
133133
assert.Nil(t, err)
134134
})
135135

136-
t.Run("cleanDirectory removes all files and directories", func(t *testing.T) {
137-
t.Parallel()
138-
139-
tempDir := t.TempDir()
140-
141-
file := tempDir + "/file"
142-
f, err := os.Create(file)
143-
assert.Nil(t, err)
144-
145-
dir := tempDir + "/dir"
146-
err = os.Mkdir(dir, 0755)
147-
assert.Nil(t, err)
148-
149-
// Clean up
150-
err = f.Close()
151-
assert.Nil(t, err)
152-
153-
err = cleanDirectory(tempDir)
154-
assert.Nil(t, err)
155-
156-
_, err = os.Stat(file)
157-
assert.NotNil(t, err)
158-
_, err = os.Stat(dir)
159-
assert.NotNil(t, err)
160-
})
161-
162136
t.Run("readDirectories returns all subdirectories", func(t *testing.T) {
163137
t.Parallel()
164138

0 commit comments

Comments
 (0)