in scan/context.go [49:79]
func (s *Scanner) getContext(ctx context.Context, scContext string) (workingDir string, err error) {
isSourceControlURL := util.IsSourceControlURL(scContext)
isURL := util.IsURL(scContext)
isRegistryArtifact := util.IsRegistryArtifact(scContext)
// If the context is remote, make the destination folder to clone or untar into.
if isSourceControlURL || isURL || isRegistryArtifact {
if _, err := os.Stat(s.destinationFolder); os.IsNotExist(err) {
// Creates the destination folder if necessary, granting full permissions to the owner.
if innerErr := os.Mkdir(s.destinationFolder, 0700); innerErr != nil {
return scContext, innerErr
}
}
}
if isSourceControlURL {
fmt.Println("Getting context from Git URL")
workingDir, err := s.getContextFromGitURL(scContext)
return workingDir, err
} else if isURL {
fmt.Println("Getting context from URL")
err := s.getContextFromURL(scContext)
return s.destinationFolder, err
} else if isRegistryArtifact {
fmt.Println("Getting context from registry")
err := s.getContextFromRegistry(ctx, util.TrimArtifactPrefix(scContext))
return s.destinationFolder, err
}
return scContext, nil
}