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 }