github.com/buildpacks/pack@v0.33.3-0.20240516162812-884dd1837311/internal/build/mount_paths.go (about)

     1  package build
     2  
     3  import "strings"
     4  
     5  type mountPaths struct {
     6  	volume    string
     7  	separator string
     8  	workspace string
     9  }
    10  
    11  func mountPathsForOS(os, workspace string) mountPaths {
    12  	if workspace == "" {
    13  		workspace = "workspace"
    14  	}
    15  	if os == "windows" {
    16  		return mountPaths{
    17  			volume:    `c:`,
    18  			separator: `\`,
    19  			workspace: workspace,
    20  		}
    21  	}
    22  	return mountPaths{
    23  		volume:    "",
    24  		separator: "/",
    25  		workspace: workspace,
    26  	}
    27  }
    28  
    29  func (m mountPaths) join(parts ...string) string {
    30  	return strings.Join(parts, m.separator)
    31  }
    32  
    33  func (m mountPaths) layersDir() string {
    34  	return m.join(m.volume, "layers")
    35  }
    36  
    37  func (m mountPaths) stackPath() string {
    38  	return m.join(m.layersDir(), "stack.toml")
    39  }
    40  
    41  func (m mountPaths) runPath() string {
    42  	return m.join(m.layersDir(), "run.toml")
    43  }
    44  
    45  func (m mountPaths) projectPath() string {
    46  	return m.join(m.layersDir(), "project-metadata.toml")
    47  }
    48  
    49  func (m mountPaths) reportPath() string {
    50  	return m.join(m.layersDir(), "report.toml")
    51  }
    52  
    53  func (m mountPaths) appDirName() string {
    54  	return m.workspace
    55  }
    56  
    57  func (m mountPaths) appDir() string {
    58  	return m.join(m.volume, m.appDirName())
    59  }
    60  
    61  func (m mountPaths) cacheDir() string {
    62  	return m.join(m.volume, "cache")
    63  }
    64  
    65  func (m mountPaths) kanikoCacheDir() string {
    66  	return m.join(m.volume, "kaniko")
    67  }
    68  
    69  func (m mountPaths) launchCacheDir() string {
    70  	return m.join(m.volume, "launch-cache")
    71  }
    72  
    73  func (m mountPaths) sbomDir() string {
    74  	return m.join(m.volume, "layers", "sbom")
    75  }