Test Failed
Push — master ( 51a773...d4df6a )
by Valentin
02:37
created

writecmd.Flags.MoreVerbosity   A

Complexity

Conditions 2

Size

Total Lines 2
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 2
nop 0
dl 0
loc 2
rs 10
c 0
b 0
f 0
1
package writecmd
2
3
import (
4
	"github.com/spf13/cobra"
5
	"path/filepath"
6
)
7
8
const defaultSeparator rune = ','
9
10
type Flags struct {
11
	filename      string
12
	directory     string
13
	separator     string
14
	append        bool
15
	saveOriginals bool
16
	verbose       bool
17
	moreVerbose   bool
18
	mostVerbose   bool
19
}
20
21
func (f Flags) Filename() string {
22
	return f.filename
23
}
24
25
func (f Flags) Directory() string {
26
	if len(f.directory) != 0 {
27
		return f.directory
28
	}
29
30
	return filepath.Dir(f.filename)
31
}
32
33
func (f Flags) Separator() rune {
34
	sep := []rune(f.separator)
35
	if len(sep) > 0 {
36
		return sep[0]
37
	}
38
39
	return defaultSeparator
40
}
41
42
func (f Flags) Append() bool {
43
	return f.append
44
}
45
46
func (f Flags) Originals() bool {
47
	return f.saveOriginals
48
}
49
50
func (f Flags) Verbosity() bool {
51
	return f.verbose || f.moreVerbose || f.mostVerbose
52
}
53
54
func (f Flags) MoreVerbosity() bool {
55
	return f.moreVerbose || f.mostVerbose
56
}
57
58
func (f Flags) MostVerbosity() bool {
59
	return f.mostVerbose
60
}
61
62
func (f *Flags) Fill(cmd *cobra.Command) {
63
	cmd.Flags().StringVarP(&f.filename, "filename", "f", "", "Metadata source file name")
64
	cmd.MarkFlagRequired("filename")
65
	cmd.Flags().StringVarP(&f.separator, "sep", "s", string(defaultSeparator), "CSV file columns separator")
66
	cmd.Flags().StringVarP(&f.directory, "directory", "d", "", "Directory with files to be processed")
67
	cmd.Flags().BoolVarP(&f.append, "append", "a", false, "Append new data to existing values?")
68
	cmd.Flags().BoolVarP(&f.saveOriginals, "originals", "o", false, "Save original files (overwrite with new data if not set)?")
69
	cmd.Flags().BoolVarP(&f.verbose, "v", "", false, "Verbosity")
70
	cmd.Flags().BoolVarP(&f.moreVerbose, "vv", "", false, "More Verbosity")
71
	cmd.Flags().BoolVarP(&f.mostVerbose, "vvv", "", false, "Most Verbosity")
72
}
73