68 lines
1.4 KiB
Go
68 lines
1.4 KiB
Go
|
// The store command displays detailed information about InfluxDB data files.
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"io"
|
||
|
"os"
|
||
|
|
||
|
"github.com/influxdata/influxdb/cmd"
|
||
|
"github.com/influxdata/influxdb/cmd/store/help"
|
||
|
"github.com/influxdata/influxdb/cmd/store/query"
|
||
|
_ "github.com/influxdata/influxdb/tsdb/engine"
|
||
|
"github.com/uber-go/zap"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
m := NewMain()
|
||
|
if err := m.Run(os.Args[1:]...); err != nil {
|
||
|
fmt.Fprintln(os.Stderr, err)
|
||
|
os.Exit(1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Main represents the program execution.
|
||
|
type Main struct {
|
||
|
Logger zap.Logger
|
||
|
|
||
|
Stdin io.Reader
|
||
|
Stdout io.Writer
|
||
|
Stderr io.Writer
|
||
|
}
|
||
|
|
||
|
// NewMain returns a new instance of Main.
|
||
|
func NewMain() *Main {
|
||
|
return &Main{
|
||
|
Logger: zap.New(
|
||
|
zap.NewTextEncoder(),
|
||
|
zap.Output(os.Stderr),
|
||
|
),
|
||
|
Stdin: os.Stdin,
|
||
|
Stdout: os.Stdout,
|
||
|
Stderr: os.Stderr,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Run determines and runs the command specified by the CLI args.
|
||
|
func (m *Main) Run(args ...string) error {
|
||
|
name, args := cmd.ParseCommandName(args)
|
||
|
|
||
|
// Extract name from args.
|
||
|
switch name {
|
||
|
case "", "help":
|
||
|
if err := help.NewCommand().Run(args...); err != nil {
|
||
|
return fmt.Errorf("help: %s", err)
|
||
|
}
|
||
|
case "query":
|
||
|
name := query.NewCommand()
|
||
|
name.Logger = m.Logger
|
||
|
if err := name.Run(args...); err != nil {
|
||
|
return fmt.Errorf("query: %s", err)
|
||
|
}
|
||
|
default:
|
||
|
return fmt.Errorf(`unknown command "%s"`+"\n"+`Run 'influx_inspect help' for usage`+"\n\n", name)
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|