featurebase/idk/cmd/molecula-consumer-kinesis/main.go
Matthew Jaffee 6d4c1d9db1
Sup 294 pre sort command (#2209)
* first cut at pre-sort command that works on ndjson

* finish pre_sort command for CSV and JSON and add test

* try fixing golangci-lint

* remove some dumb lint checks

* more linter disabling

* take .golangci.yml from previous repo

* go fmt (facepalm)

* remove ioutil to fix lint
2023-01-23 12:26:38 -06:00

56 lines
927 B
Go

package main
import (
"log"
"os"
"github.com/featurebasedb/featurebase/v3/idk/kinesis"
"github.com/featurebasedb/featurebase/v3/logger"
"github.com/jaffee/commandeer/pflag"
)
func logError(m *kinesis.Main, err error) {
log := m.Log()
if log == nil {
log = logger.NewStandardLogger(os.Stderr)
}
log.Errorf("Error running command: %s", err)
}
func logPanic(m *kinesis.Main, v interface{}) {
log := m.Log()
if log == nil {
log = logger.NewStandardLogger(os.Stderr)
}
log.Panicf("Panic running command: %+v", v)
}
func main() {
m := kinesis.NewMain()
if err := pflag.LoadEnv(m, "CONSUMER_", nil); err != nil {
log.Fatal(err)
}
m.Rename()
// Capture any panic and log it before dying.
defer func() {
if r := recover(); r != nil {
logPanic(m, r)
os.Exit(1)
}
}()
if m.DryRun {
log.Printf("%+v\n", m)
return
}
if err := m.Run(); err != nil {
logError(m, err)
os.Exit(1)
}
}