github.com/jlmeeker/kismatic@v1.10.1-0.20180612190640-57f9005a1f1a/pkg/inspector/rule/package.go (about) 1 package rule 2 3 import ( 4 "errors" 5 "fmt" 6 ) 7 8 // The PackageDependency rule declares a dependency on a software package 9 // that can be installed via an operating system's package manager. 10 type PackageDependency struct { 11 Meta 12 PackageName string 13 PackageVersion string 14 } 15 16 // Name returns the name of the rule 17 func (p PackageDependency) Name() string { 18 name := fmt.Sprintf(`Package "%s %s"`, p.PackageName, p.PackageVersion) 19 if p.PackageVersion == "" { 20 name = fmt.Sprintf(`Package "%s"`, p.PackageName) 21 } 22 return name 23 } 24 25 // IsRemoteRule returns true if the rule is to be run from outside of the node 26 func (p PackageDependency) IsRemoteRule() bool { return false } 27 28 // Validate the rule 29 func (p PackageDependency) Validate() []error { 30 err := []error{} 31 if p.PackageName == "" { 32 err = append(err, errors.New("PackageName cannot be empty")) 33 } 34 if len(err) > 0 { 35 return err 36 } 37 return nil 38 }