github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/formatters/factory.go (about) 1 package formatters 2 3 import ( 4 "io" 5 6 "github.com/khulnasoft-lab/defsec/pkg/scan" 7 ) 8 9 func New() *factory { 10 return &factory{ 11 base: NewBase(), 12 } 13 } 14 15 type factory struct { 16 base *Base 17 } 18 19 func (f *factory) Build() Formatter { 20 return f.base 21 } 22 23 func (f *factory) WithIncludePassed(include bool) *factory { 24 f.base.includePassed = include 25 return f 26 } 27 28 func (f *factory) WithIncludeIgnored(include bool) *factory { 29 f.base.includeIgnored = include 30 return f 31 } 32 33 func (f *factory) WithMetricsEnabled(enabled bool) *factory { 34 f.base.enableMetrics = enabled 35 return f 36 } 37 38 func (f *factory) WithDebugEnabled(enabled bool) *factory { 39 f.base.enableDebug = enabled 40 return f 41 } 42 43 func (f *factory) WithColoursEnabled(enabled bool) *factory { 44 f.base.enableColours = enabled 45 return f 46 } 47 48 func (f *factory) WithGroupingEnabled(enabled bool) *factory { 49 f.base.enableGrouping = enabled 50 return f 51 } 52 53 func (f *factory) WithFSRoot(root string) *factory { 54 f.base.fsRoot = root 55 return f 56 } 57 58 func (f *factory) WithRelativePaths(relative bool) *factory { 59 f.base.relative = relative 60 return f 61 } 62 63 func (f *factory) WithBaseDir(dir string) *factory { 64 f.base.baseDir = dir 65 return f 66 } 67 68 func (f *factory) WithCustomFormatterFunc(fn func(ConfigurableFormatter, scan.Results) error) *factory { 69 f.base.outputOverride = fn 70 return f 71 } 72 73 func (f *factory) WithLinksFunc(fn func(result scan.Result) []string) *factory { 74 f.base.linksOverride = fn 75 return f 76 } 77 78 func (f *factory) WithWriter(w io.Writer) *factory { 79 f.base.writer = w 80 return f 81 } 82 83 func (f *factory) AsJSON() *factory { 84 f.base.outputOverride = outputJSON 85 return f 86 } 87 88 func (f *factory) AsCheckStyle() *factory { 89 f.base.outputOverride = outputCheckStyle 90 return f 91 } 92 93 func (f *factory) AsCSV() *factory { 94 f.base.outputOverride = outputCSV 95 return f 96 } 97 98 func (f *factory) AsJUnit() *factory { 99 f.base.outputOverride = outputJUnit 100 return f 101 } 102 103 func (f *factory) AsSARIF() *factory { 104 f.base.outputOverride = outputSARIF 105 return f 106 } 107 108 func (f *factory) AsSimple() *factory { 109 f.base.outputOverride = outputSimple 110 return f 111 }