Skip to content

Commit

Permalink
Enable get command, exit if no streams with prefix
Browse files Browse the repository at this point in the history
  • Loading branch information
TylerBrock committed Jun 9, 2018
1 parent 482a6fe commit a6486a6
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 8 deletions.
16 changes: 16 additions & 0 deletions blade/blade.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,22 @@ func (b *Blade) GetLogStreams() []*cloudwatchlogs.LogStream {
return streams
}

func (b *Blade) GetEvents() {
input := b.config.FilterLogEventsInput()

handlePage := func(page *cloudwatchlogs.FilterLogEventsOutput, lastPage bool) bool {
for _, event := range page.Events {
fmt.Println(*event.Message)
}
return !lastPage
}
err := b.cwl.FilterLogEventsPages(input, handlePage)
if err != nil {
fmt.Println("Error", err)
os.Exit(2)
}
}

func (b *Blade) StreamEvents() {
var lastSeenTime *int64
var seenEventIDs map[string]bool
Expand Down
25 changes: 19 additions & 6 deletions cmd/get.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,43 @@ package cmd

import (
"errors"
"fmt"
"os"

"github.com/TylerBrock/saw/blade"
"github.com/TylerBrock/saw/config"
"github.com/spf13/cobra"
)

var getConfig config.Configuration

var GetCommand = &cobra.Command{
Use: "get",
Use: "get <log group>",
Short: "Get log events",
Long: "",
Args: func(cmd *cobra.Command, args []string) error {
if len(args) < 1 {
return errors.New("listing streams requires log group argument")
return errors.New("getting events requires log group argument")
}
return nil
},
Run: func(cmd *cobra.Command, args []string) {
//b := blade.NewBlade(&getConfig)
getConfig.Group = args[0]
b := blade.NewBlade(&getConfig, nil)
if getConfig.Prefix != "" {
streams := b.GetLogStreams()
if len(streams) == 0 {
fmt.Printf("No streams found in %s with prefix %s\n", getConfig.Group, getConfig.Prefix)
os.Exit(3)
}
getConfig.Streams = streams
}
b.GetEvents()
},
}

func init() {
GetCommand.Flags().StringVar(&groupsConfig.Prefix, "prefix", "", "log group prefix filter")
GetCommand.Flags().StringVar(&groupsConfig.Start, "start", "", "start getting the logs from this point")
GetCommand.Flags().StringVar(&groupsConfig.End, "end", "now", "stop getting the logs at this point")
GetCommand.Flags().StringVar(&getConfig.Prefix, "prefix", "", "log group prefix filter")
GetCommand.Flags().StringVar(&getConfig.Start, "start", "", "start getting the logs from this point")
GetCommand.Flags().StringVar(&getConfig.End, "end", "now", "stop getting the logs at this point")
}
2 changes: 1 addition & 1 deletion cmd/saw.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@ func init() {
SawCommand.AddCommand(StreamsCommand)
SawCommand.AddCommand(VersionCommand)
SawCommand.AddCommand(WatchCommand)
//SawCommand.AddCommand(GetCommand)
SawCommand.AddCommand(GetCommand)
//Saw.AddCommand(Delete)
}
9 changes: 8 additions & 1 deletion cmd/watch.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package cmd

import (
"errors"
"fmt"
"os"

"github.com/TylerBrock/saw/blade"
"github.com/TylerBrock/saw/config"
Expand All @@ -25,7 +27,12 @@ var WatchCommand = &cobra.Command{
watchConfig.Group = args[0]
b := blade.NewBlade(&watchConfig, &outputConfig)
if watchConfig.Prefix != "" {
watchConfig.Streams = b.GetLogStreams()
streams := b.GetLogStreams()
if len(streams) == 0 {
fmt.Printf("No streams found in %s with prefix %s\n", watchConfig.Group, watchConfig.Prefix)
os.Exit(3)
}
watchConfig.Streams = streams
}
b.StreamEvents()
},
Expand Down

0 comments on commit a6486a6

Please sign in to comment.