45 lines
931 B
Go
Raw Permalink Normal View History

2022-07-29 03:34:55 -05:00
package structs
import (
"fmt"
"strings"
)
type PluginConfiguration struct {
CacheFingerprints bool
MaxParallelism int
SelectedLibraries string
AnalysisPercent int
AnalysisLengthLimit int
MinimumIntroDuration int
}
func (c PluginConfiguration) AnalysisSettings() string {
// If no libraries have been selected, display a star.
// Otherwise, quote each library before displaying the slice.
var libs []string
if c.SelectedLibraries == "" {
libs = []string{"*"}
} else {
for _, tmp := range strings.Split(c.SelectedLibraries, ",") {
tmp = `"` + strings.TrimSpace(tmp) + `"`
libs = append(libs, tmp)
}
}
return fmt.Sprintf(
"cfp=%t thr=%d lbs=%v",
c.CacheFingerprints,
c.MaxParallelism,
libs)
}
func (c PluginConfiguration) IntroductionRequirements() string {
return fmt.Sprintf(
"per=%d%% max=%dm min=%ds",
c.AnalysisPercent,
c.AnalysisLengthLimit,
c.MinimumIntroDuration)
}