diff --git a/README.md b/README.md index 6bdcb54..32bec91 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Go to [release page](https://github.com/xoanmm/log-stream-filter/releases) and d log-stream-filter [--log-group ] [--log-stream-filter ] [--log-stream-filter-position ][--search-term-search ][--term-to-search] [--aws-profile ] [--aws-region ] [--path ] [--start-date ] [--end-date ] VERSION: - 1.1.0 + 1.1.1 AUTHOR: Xoan Mallon diff --git a/cmd/doc.go b/cmd/doc.go index 2acc57d..ea09af1 100644 --- a/cmd/doc.go +++ b/cmd/doc.go @@ -6,7 +6,7 @@ USAGE: log-stream-filter [--log-group ] [--log-stream-filter ] [--log-stream-filter-position ][--search-term-search ][--term-to-search] [--aws-profile ] [--aws-region ] [--path ] [--start-date ] [--end-date ] VERSION: - 1.1.0 + 1.1.1 AUTHOR: Xoan Mallon diff --git a/cmd/main.go b/cmd/main.go index f779a16..8ac05a6 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -15,7 +15,7 @@ import ( const dateLayout = "01/02/2006 15:04:05" -var version = "1.1.0" +var version = "1.1.1" var date = time.Now().Format(time.RFC3339) var now = time.Now().UTC() var nowDate = now.Format(dateLayout) @@ -73,15 +73,15 @@ func buildCLI(app *filter.App) *cli.App { }, &cli.BoolFlag{ - Name: "search-term-search", - Usage: "Indicates if a specific term should be searched for in the logStreams", + Name: "search-term-search", + Usage: "Indicates if a specific term should be searched for in the logStreams", Value: false, Aliases: []string{"t"}, }, &cli.StringFlag{ - Name: "term-to-search", - Usage: "Term used to filter each of the messages found in the logStreams", + Name: "term-to-search", + Usage: "Term used to filter each of the messages found in the logStreams", Value: " ", Aliases: []string{"T"}, }, @@ -132,17 +132,27 @@ func buildCLI(app *filter.App) *cli.App { AwsRegion: c.String("aws-region"), LogStreamFilter: c.String("log-stream-filter"), LogStreamFilterPosition: c.Int("log-stream-filter-position"), - SearchTermSearch: c.Bool("search-term-search"), - SearchTerm: c.String("term-to-search"), + SearchTermSearch: c.Bool("search-term-search"), + SearchTerm: c.String("term-to-search"), Path: path, StartDate: c.String("start-date"), EndDate: c.String("end-date"), }) - fmt.Println(filter.GetLengthOfLogsFilesGenerated(logsFileGenerated), "files generated for logs of logStreams filtered for logGroup", logGroup) - for k, _ := range logsFileGenerated { + lengthOfLogsFilesGenerated, err := filter.GetLengthOfLogsFilesGenerated(logsFileGenerated) + if err != nil { + return err + } + fmt.Println(lengthOfLogsFilesGenerated, "files generated for logs of logStreams filtered for logGroup", logGroup) + for k := range logsFileGenerated { fmt.Printf("Location of files where logs of logStream %s were stored are the following\n", k) for _, file := range logsFileGenerated[k] { - fmt.Printf("- %s\n", file) + fileHasContent, err := filter.CheckIfFileExistsHasContent(file) + if err != nil { + return err + } + if fileHasContent { + fmt.Printf("- %s\n", file) + } } } return nil diff --git a/pkg/filter/app_utils.go b/pkg/filter/app_utils.go index 8014c37..2c4cd06 100644 --- a/pkg/filter/app_utils.go +++ b/pkg/filter/app_utils.go @@ -3,6 +3,7 @@ package filter import ( "fmt" "log" + "os" "strings" ) @@ -86,11 +87,36 @@ func printFileStoreForLogStream(logStreamName string, logGroupName string, filen } } +// CheckIfFileExistsHasContent check if a specific file exists and is not empty +func CheckIfFileExistsHasContent(file string) (bool, error) { + fileExistsAndHasContent := false + if _, err := os.Stat(file); err == nil { + fi, err := os.Stat(file) + if err != nil { + return fileExistsAndHasContent, err + } + // get the size + size := fi.Size() + if size > 0 { + fileExistsAndHasContent = true + } + } + return fileExistsAndHasContent, nil +} + // GetLengthOfLogsFilesGenerated calculates the number of files on which search results have been stored -func GetLengthOfLogsFilesGenerated(logsFileGenerated map[string][]string) int { +func GetLengthOfLogsFilesGenerated(logsFileGenerated map[string][]string) (int, error) { filesGeneratedLength := 0 for k, _ := range logsFileGenerated { - filesGeneratedLength += len(logsFileGenerated[k]) + for _, file := range logsFileGenerated[k] { + fileHasContent, err := CheckIfFileExistsHasContent(file) + if err != nil { + return filesGeneratedLength, err + } + if fileHasContent { + filesGeneratedLength += 1 + } + } } - return filesGeneratedLength + return filesGeneratedLength, nil }