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

cmd/writecmd/flags.go   A

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
cc 9
eloc 37
dl 0
loc 59
rs 10
c 0
b 0
f 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A writecmd.Flags.Directory 0 6 2
A writecmd.Flags.Append 0 2 1
A writecmd.Flags.Verbosity 0 2 1
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 8 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
}
18
19
func (f Flags) Filename() string {
20
	return f.filename
21
}
22
23
func (f Flags) Directory() string {
24
	if len(f.directory) != 0 {
25
		return f.directory
26
	}
27
28
	return filepath.Dir(f.filename)
29
}
30
31
func (f Flags) Separator() rune {
32
	sep := []rune(f.separator)
33
	if len(sep) > 0 {
34
		return sep[0]
35
	}
36
37
	return defaultSeparator
38
}
39
40
func (f Flags) Append() bool {
41
	return f.append
42
}
43
44
func (f Flags) Originals() bool {
45
	return f.saveOriginals
46
}
47
48
func (f Flags) Verbosity() bool {
49
	return f.verbose
50
}
51
52
func (f *Flags) Fill(cmd *cobra.Command) {
53
	cmd.Flags().StringVarP(&f.filename, "filename", "f", "", "Metadata source file name")
54
	cmd.MarkFlagRequired("filename")
55
	cmd.Flags().StringVarP(&f.separator, "sep", "s", string(defaultSeparator), "CSV file columns separator")
56
	cmd.Flags().StringVarP(&f.directory, "directory", "d", "", "Directory with files to be processed")
57
	cmd.Flags().BoolVarP(&f.append, "append", "a", false, "Append new data to existing values?")
58
	cmd.Flags().BoolVarP(&f.saveOriginals, "originals", "o", false, "Save original files (overwrite with new data if not set)?")
59
	cmd.Flags().BoolVarP(&f.verbose, "verbose", "v", false, "Verbosity")
60
}
61