Skip to content

Commit

Permalink
✨ Extend files whitelist for init cmd
Browse files Browse the repository at this point in the history
Signed-off-by: Valentin Pichard <[email protected]>
  • Loading branch information
w3st3ry committed Apr 28, 2021
1 parent 33ca7eb commit e82a221
Showing 1 changed file with 21 additions and 6 deletions.
27 changes: 21 additions & 6 deletions pkg/plugins/golang/v3/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
"os"
"path/filepath"
"strings"
"unicode"

"github.com/spf13/pflag"

Expand Down Expand Up @@ -171,12 +172,25 @@ func checkDir() error {
if strings.HasPrefix(info.Name(), ".") {
return nil
}
// Allow files ending with '.md' extension
if strings.HasSuffix(info.Name(), ".md") && !info.IsDir() {
return nil
}
// Allow capitalized files except PROJECT
isCapitalized := true
for _, l := range info.Name() {
if !unicode.IsUpper(l) {
isCapitalized = false
break
}
}
if isCapitalized && info.Name() != "PROJECT" {
return nil
}
// Allow files in the following list
allowedFiles := []string{
"go.mod", // user might run `go mod init` instead of providing the `--flag` at init
"go.sum", // auto-generated file related to go.mod
"LICENSE", // can be generated when initializing a GitHub project
"README.md", // can be generated when initializing a GitHub project
"go.mod", // user might run `go mod init` instead of providing the `--flag` at init
"go.sum", // auto-generated file related to go.mod
}
for _, allowedFile := range allowedFiles {
if info.Name() == allowedFile {
Expand All @@ -185,8 +199,9 @@ func checkDir() error {
}
// Do not allow any other file
return fmt.Errorf(
"target directory is not empty (only %s, and files and directories with the prefix \".\" are "+
"allowed); found existing file %q", strings.Join(allowedFiles, ", "), path)
"target directory is not empty (only %s, files and directories with the prefix \".\", "+
"files with the suffix \".md\" or capitalized files name are allowed); "+
"found existing file %q", strings.Join(allowedFiles, ", "), path)
})
if err != nil {
return err
Expand Down

0 comments on commit e82a221

Please sign in to comment.