diff --git a/cmd/kod/internal/generate.go b/cmd/kod/internal/generate.go index 8a8040d..7b583ec 100644 --- a/cmd/kod/internal/generate.go +++ b/cmd/kod/internal/generate.go @@ -2,10 +2,10 @@ package internal import ( "fmt" - "log" "time" "github.com/fsnotify/fsnotify" + "github.com/samber/lo" "github.com/spf13/cobra" ) @@ -19,15 +19,10 @@ var generate = &cobra.Command{ { if watch, _ := cmd.Flags().GetBool("watch"); watch { // Create new watcher. - w, err := fsnotify.NewWatcher() - if err != nil { - log.Fatal(err) - } + w := lo.Must(fsnotify.NewWatcher()) defer w.Close() - Watch(&watcher{w: w}, ".", func() { - doGenerate(cmd, ".", args) - }) + Watch(&watcher{w: w}, ".", func() { doGenerate(cmd, ".", args) }) } doGenerate(cmd, ".", args) @@ -38,7 +33,7 @@ var generate = &cobra.Command{ func doGenerate(cmd *cobra.Command, dir string, args []string) { startTime := time.Now() - if s2i := cmd.Flag("struct2interface").Changed; s2i { + if s2i, _ := cmd.Flags().GetBool("struct2interface"); s2i { err := Struct2Interface(cmd, ".") if err != nil { fmt.Println(err) diff --git a/cmd/kod/internal/generate_test.go b/cmd/kod/internal/generate_test.go index 183b377..e752dc0 100644 --- a/cmd/kod/internal/generate_test.go +++ b/cmd/kod/internal/generate_test.go @@ -7,3 +7,7 @@ import ( func TestGenerate(t *testing.T) { execute("generate github.com/go-kod/kod/tests/graphcase/...") } + +func TestGenerateWithStruct2Interface(t *testing.T) { + execute("generate -s github.com/go-kod/kod/tests/graphcase/...") +} diff --git a/tests/case1/kod_gen_mock.go b/tests/case1/kod_gen_mock.go index 059b50b..79a4cdd 100644 --- a/tests/case1/kod_gen_mock.go +++ b/tests/case1/kod_gen_mock.go @@ -1,9 +1,9 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: tests/case1/kod_gen_interface.go +// Source: ../../../tests/case1/kod_gen_interface.go // // Generated by this command: // -// mockgen -source tests/case1/kod_gen_interface.go -destination tests/case1/kod_gen_mock.go -package case1 +// mockgen -source ../../../tests/case1/kod_gen_interface.go -destination ../../../tests/case1/kod_gen_mock.go -package case1 // // Package case1 is a generated GoMock package. package case1