Passed
Push — master ( 4761c3...245c16 )
by Valentin
01:56
created

scancmd.Flags.Verbosity   A

Complexity

Conditions 1

Size

Total Lines 2
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nop 0
dl 0
loc 2
rs 10
c 0
b 0
f 0
1
package scancmd
2
3
import (
4
	"github.com/spf13/cobra"
5
	"path/filepath"
6
	"strings"
7
)
8
9
const defaultFormat string = "csv"
10
11
type Flags struct {
12
	directory string
13
	format    string
14
	filename  string
15
	verbose   bool
16
}
17
18
func (f Flags) Directory() string {
19
	return f.directory
20
}
21
22
func (f Flags) Filename() string {
23
	return filepath.Join(f.Directory(), f.filename+"."+f.ext())
24
}
25
26
func (f Flags) Format() string {
27
	return f.format
28
}
29
30
func (f Flags) Verbosity() bool {
31
	return f.verbose
32
}
33
34
func (f Flags) ext() string {
35
	if len(f.format) == 0 || strings.EqualFold(f.format, "mscsv") {
36
		return defaultFormat
37
	}
38
39
	return f.format
40
}
41
42
func (f *Flags) Fill(cmd *cobra.Command) {
43
	cmd.Flags().StringVarP(&f.directory, "directory", "d", "", "Directory with files to be scanned")
44
	cmd.MarkFlagRequired("directory")
45
	cmd.Flags().StringVarP(&f.filename, "output", "o", "", "Output file (without extension)")
46
	cmd.MarkFlagRequired("output")
47
	cmd.Flags().StringVarP(&f.format, "format", "f", "csv", "Output file format")
48
	cmd.Flags().BoolVarP(&f.verbose, "verbose", "v", false, "Verbosity")
49
}
50