in plugin/step/install/linux/apt/apt.go [128:169]
func LoaderForBinary(binary string) go2chef.StepLoader {
return func(config map[string]interface{}) (go2chef.Step, error) {
step := &Step{
StepName: "",
APTBinary: "/usr/bin/" + binary,
DPKGBinary: "/usr/bin/dpkg-query",
PackageName: DefaultPackageName,
DpkgCheckTimeoutSeconds: 60,
InstallTimeoutSeconds: 300,
logger: go2chef.GetGlobalLogger(),
source: nil,
downloadPath: "",
}
if err := mapstructure.Decode(config, step); err != nil {
return nil, err
}
source, err := go2chef.GetSourceFromStepConfig(config)
if err != nil {
return nil, err
}
step.source = source
reStr := fmt.Sprintf("^%s.*.deb$", step.PackageName)
regex, err := regexp.Compile(reStr)
if err != nil {
step.logger.Errorf("failed to compile package matching regex %s", reStr)
return nil, err
}
step.packageRegex = regex
vreStr := fmt.Sprintf("^%s\t%s.*", step.PackageName, step.Version)
vRegex, err := regexp.Compile(vreStr)
if err != nil {
step.logger.Errorf("failed to compile package version match regex %s", vreStr)
}
step.packageVersionRegex = vRegex
return step, nil
}
}