func()

in scan/dependencies.go [32:66]


func (s *Scanner) ScanForDependencies(context string, workingDir string, dockerfile string, buildArgs []string, pushTo []string, target string) (deps []*image.Dependencies, err error) {
	dockerfilePath := createDockerfilePath(context, workingDir, dockerfile)
	file, err := os.Open(dockerfilePath)
	if err != nil {
		return deps, fmt.Errorf("error opening dockerfile: %s, error: %v", dockerfilePath, err)
	}
	defer func() { _ = file.Close() }()

	runtime, buildtime, err := resolveDockerfileDependencies(file, buildArgs, target)
	if err != nil {
		return deps, err
	}

	// Even though there's nothing to push to, we always invoke NewImageDependencies
	// TODO: refactor this in the future to take in the full list as opposed to individual
	// images.
	var currDep *image.Dependencies
	if len(pushTo) == 0 {
		currDep, err = s.NewImageDependencies("", runtime, buildtime)
		if err != nil {
			return nil, err
		}
		deps = append(deps, currDep)
	}

	for _, imageName := range pushTo {
		currDep, err = s.NewImageDependencies(imageName, runtime, buildtime)
		if err != nil {
			return nil, err
		}
		deps = append(deps, currDep)
	}

	return deps, err
}