github.com/Racer159/jackal@v0.32.7-0.20240401174413-0bd2339e4f2e/src/pkg/packager/inspect.go (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // SPDX-FileCopyrightText: 2021-Present The Jackal Authors
     3  
     4  // Package packager contains functions for interacting with, managing and deploying Jackal packages.
     5  package packager
     6  
     7  import (
     8  	"github.com/Racer159/jackal/src/internal/packager/sbom"
     9  	"github.com/Racer159/jackal/src/pkg/utils"
    10  )
    11  
    12  // Inspect list the contents of a package.
    13  func (p *Packager) Inspect() (err error) {
    14  	wantSBOM := p.cfg.InspectOpts.ViewSBOM || p.cfg.InspectOpts.SBOMOutputDir != ""
    15  
    16  	p.cfg.Pkg, p.warnings, err = p.source.LoadPackageMetadata(p.layout, wantSBOM, true)
    17  	if err != nil {
    18  		return err
    19  	}
    20  
    21  	utils.ColorPrintYAML(p.cfg.Pkg, nil, false)
    22  
    23  	sbomDir := p.layout.SBOMs.Path
    24  
    25  	if p.cfg.InspectOpts.SBOMOutputDir != "" {
    26  		out, err := p.layout.SBOMs.OutputSBOMFiles(p.cfg.InspectOpts.SBOMOutputDir, p.cfg.Pkg.Metadata.Name)
    27  		if err != nil {
    28  			return err
    29  		}
    30  		sbomDir = out
    31  	}
    32  
    33  	if p.cfg.InspectOpts.ViewSBOM {
    34  		sbom.ViewSBOMFiles(sbomDir)
    35  	}
    36  
    37  	return nil
    38  }