Passed
Pull Request — master (#31)
by Stefano
02:08
created

main.createCommand   A

Complexity

Conditions 3

Size

Total Lines 16
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 11
nop 1
dl 0
loc 16
rs 9.85
c 0
b 0
f 0
1
package main
2
3
import (
4
	"github.com/pkg/errors"
5
	"github.com/sirupsen/logrus"
6
	"github.com/spf13/cobra"
7
	"github.com/stefanoj3/dirstalk/pkg/cmd"
8
)
9
10
func main() {
11
	logger := logrus.New()
12
	logger.Formatter = &logrus.TextFormatter{DisableTimestamp: true}
13
14
	dirStalkCmd, err := createCommand(logger)
15
	if err != nil {
16
		logger.WithField("err", err).Fatal("Failed to initialize application")
17
	}
18
19
	if err := dirStalkCmd.Execute(); err != nil {
20
		logger.WithField("err", err).Fatal("Execution error")
21
	}
22
}
23
24
func createCommand(logger *logrus.Logger) (*cobra.Command, error) {
25
	dirStalkCmd, err := cmd.NewRootCommand(logger)
26
	if err != nil {
27
		return nil, err
28
	}
29
30
	scanCmd, err := cmd.NewScanCommand(logger)
31
	if err != nil {
32
		return nil, errors.Wrap(err, "failed to create scan command")
33
	}
34
35
	dirStalkCmd.AddCommand(scanCmd)
36
	dirStalkCmd.AddCommand(cmd.NewGenerateDictionaryCommand())
37
	dirStalkCmd.AddCommand(cmd.NewVersionCommand(logger.Out))
38
39
	return dirStalkCmd, nil
40
}
41