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

cmd/writecmd/flags.go   A

Size/Duplication

Total Lines 71
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
cc 14
eloc 45
dl 0
loc 71
rs 10
c 0
b 0
f 0

9 Methods

Rating   Name   Duplication   Size   Complexity  
A writecmd.Flags.Directory 0 6 2
A writecmd.Flags.MoreVerbosity 0 2 2
A writecmd.Flags.MostVerbosity 0 2 1
A writecmd.Flags.Append 0 2 1
A writecmd.Flags.Verbosity 0 2 3
A writecmd.Flags.Originals 0 2 1
A writecmd.Flags.Separator 0 7 2
A writecmd.Flags.Filename 0 2 1
A writecmd.*Flags.Fill 0 10 1
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