diff --git a/cobra/cmd/init_test.go b/cobra/cmd/init_test.go index 37e6b8933..de4536b90 100644 --- a/cobra/cmd/init_test.go +++ b/cobra/cmd/init_test.go @@ -5,6 +5,9 @@ import ( "io/ioutil" "os" "path/filepath" + "reflect" + "sort" + "strings" "testing" "github.com/spf13/viper" @@ -99,3 +102,46 @@ func TestGoldenInitCmd(t *testing.T) { }) } } + +func TestInitNoLicense(t *testing.T) { + project := getProject() + project.Legal = noLicense + defer os.RemoveAll(project.AbsolutePath) + + err := project.Create() + if err != nil { + t.Fatal(err) + } + + root := project.AbsolutePath + + want := []string{"main.go", "cmd/root.go"} + var got []string + err = filepath.Walk(root, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + if info.IsDir() { + return nil + } + relpath, err := filepath.Rel(root, path) + if err != nil { + return err + } + got = append(got, relpath) + return nil + }) + if err != nil { + t.Fatalf("walking path %q: %v", root, err) + } + sort.StringSlice(got).Sort() + sort.StringSlice(want).Sort() + if !reflect.DeepEqual(got, want) { + t.Fatalf( + "In %s, found:\n %s\nwant:\n %s", + root, + strings.Join(got, ", "), + strings.Join(want, ", "), + ) + } +} diff --git a/cobra/cmd/licenses.go b/cobra/cmd/licenses.go index a070134dd..5f5abc89a 100644 --- a/cobra/cmd/licenses.go +++ b/cobra/cmd/licenses.go @@ -36,9 +36,11 @@ type License struct { Header string // License header for source files } +var noLicense = License{"None", []string{"none", "false"}, "", ""} + func init() { // Allows a user to not use a license. - Licenses["none"] = License{"None", []string{"none", "false"}, "", ""} + Licenses["none"] = noLicense initApache2() initMit() diff --git a/cobra/cmd/project.go b/cobra/cmd/project.go index ecd783d03..b0c12e726 100644 --- a/cobra/cmd/project.go +++ b/cobra/cmd/project.go @@ -64,6 +64,9 @@ func (p *Project) Create() error { } // create license + if p.Legal.Name == noLicense.Name { + return nil + } return p.createLicenseFile() }