Skip to content

Commit

Permalink
Add check function for check files existence and size of files where …
Browse files Browse the repository at this point in the history
…logs are stored
  • Loading branch information
Xoán Mallón committed May 13, 2020
1 parent 4d4d24e commit dbf5ca0
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 15 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Go to [release page](https://github.com/xoanmm/log-stream-filter/releases) and d
log-stream-filter [--log-group <log-group-name>] [--log-stream-filter <filter>] [--log-stream-filter-position <position>][--search-term-search <search-term-search>][--term-to-search] <term-to-search>[--aws-profile <aws-profile>] [--aws-region <aws-region>] [--path <path>] [--start-date <date>] [--end-date <date>]

VERSION:
1.1.0
1.1.1

AUTHOR:
Xoan Mallon <[email protected]>
Expand Down
2 changes: 1 addition & 1 deletion cmd/doc.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ USAGE:
log-stream-filter [--log-group <log-group-name>] [--log-stream-filter <filter>] [--log-stream-filter-position <position>][--search-term-search <search-term-search>][--term-to-search] <term-to-search>[--aws-profile <aws-profile>] [--aws-region <aws-region>] [--path <path>] [--start-date <date>] [--end-date <date>]
VERSION:
1.1.0
1.1.1
AUTHOR:
Xoan Mallon <[email protected]>
Expand Down
30 changes: 20 additions & 10 deletions cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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"},
},
Expand Down Expand Up @@ -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
Expand Down
32 changes: 29 additions & 3 deletions pkg/filter/app_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package filter
import (
"fmt"
"log"
"os"
"strings"
)

Expand Down Expand Up @@ -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
}

0 comments on commit dbf5ca0

Please sign in to comment.