diff --git a/main.go b/main.go index 62fb28f..37c3937 100644 --- a/main.go +++ b/main.go @@ -22,6 +22,7 @@ type userFlags struct { formatter string stubImpl bool skipEnsure bool + remove bool args []string } @@ -35,6 +36,7 @@ func main() { printVersion := flag.Bool("version", false, "show the version for moq") flag.BoolVar(&flags.skipEnsure, "skip-ensure", false, "suppress mock implementation check, avoid import cycle if mocks generated outside of the tested package") + flag.BoolVar(&flags.remove, "rm", false, "first remove output file, if it exists") flag.Usage = func() { fmt.Println(`moq [flags] source-dir interface [interface2 [interface3 [...]]]`) @@ -63,6 +65,14 @@ func run(flags userFlags) error { return errors.New("not enough arguments") } + if flags.remove && flags.outFile != "" { + if err := os.Remove(flags.outFile); err != nil { + if !errors.Is(err, os.ErrNotExist) { + return err + } + } + } + var buf bytes.Buffer var out io.Writer = os.Stdout if flags.outFile != "" {