diff --git a/internal/cli/generate.go b/internal/cli/generate.go index d3909e5..5f593ee 100644 --- a/internal/cli/generate.go +++ b/internal/cli/generate.go @@ -24,13 +24,15 @@ This approach allows the input file to be full of Importer markes without actual Args: cobra.MinimumNArgs(1), RunE: executeGenerate, } - generateTargetFile string - generateKeepMarkers bool + generateTargetFile string + generateKeepMarkers bool + generateDisableHeader bool ) func init() { generateCliCmd.Flags().StringVarP(&generateTargetFile, "out", "o", "", "write to `FILE`") generateCliCmd.Flags().BoolVar(&generateKeepMarkers, "keep-markers", false, "keep Importer Markers from the generated result") + generateCliCmd.Flags().BoolVar(&generateDisableHeader, "disable-header", false, "disable automatically added header of Importer generated notice") } func executeGenerate(cmd *cobra.Command, args []string) error { @@ -75,7 +77,7 @@ func generate(fileName string, targetFilepath string, keepMarkers bool) error { } if targetFilepath != "" { - return file.WriteAfterTo(targetFilepath) + return file.WriteAfterTo(targetFilepath, generateDisableHeader) } return file.PrintAfter() diff --git a/internal/file/write.go b/internal/file/write.go index 8ba3e7a..b4a9c57 100644 --- a/internal/file/write.go +++ b/internal/file/write.go @@ -7,13 +7,19 @@ import ( ) // WriteAfterTo writes the processed content to the provided filepath. -func (f *File) WriteAfterTo(targetFilePath string) error { +func (f *File) WriteAfterTo(targetFilePath string, disableHeader bool) error { file, err := os.OpenFile(targetFilePath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644) if err != nil { return err } defer file.Close() + // If no header is needed, simply write the updated content and complete. + if disableHeader { + _, err = file.Write(f.ContentAfter) + return err + } + content := []byte{} content = append(content, f.prepareGeneratedHeader(targetFilePath)...) content = append(content, f.ContentAfter...)