| Total Lines | 48 |
| Duplicated Lines | 0 % |
| Changes | 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 |