github.com/metux/go-metabuild@v0.0.0-20240118143255-d9ed5ab697f9/spec/buildconf/builddir.go (about) 1 package buildconf 2 3 import ( 4 "os" 5 "path/filepath" 6 ) 7 8 const ( 9 BuildDir = "./.build/" 10 BuildDirTmp = BuildDir + "tmp/" 11 BuildDirDist = BuildDir + "dist/" 12 ) 13 14 const ( 15 KeyBuildDir = "@builddir" 16 KeyBuildDirTmp = "@builddir/tmp" 17 KeyBuildDirDist = "@builddir/dist" 18 ) 19 20 func xmkdir(d string) string { 21 os.MkdirAll(d, 0755) 22 d, _ = filepath.Abs(filepath.Clean(d)) 23 return d 24 } 25 26 func (bc BuildConf) BuildTempDir(sub string) string { 27 return xmkdir(BuildDirTmp + sub) 28 } 29 30 func (bc BuildConf) BuildDistDir(sub string) string { 31 return xmkdir(BuildDirDist + sub) 32 } 33 34 func (bc BuildConf) BuildDistPkgDir(pkg string) string { 35 return xmkdir(BuildDirDist + bc.EntryStr(KeyTargetDistName) + "/" + pkg) 36 } 37 38 func (bc BuildConf) BuildDistPkgMetaDir(pkg string) string { 39 return xmkdir(BuildDirDist + bc.EntryStr(KeyTargetDistName) + "/" + pkg + "/meta/") 40 } 41 42 func (bc BuildConf) BuildDistPkgRootDir(pkg string, sub string) string { 43 return xmkdir(BuildDirDist + bc.EntryStr(KeyTargetDistName) + "/" + pkg + "/root/" + sub) 44 } 45 46 func (bc BuildConf) CleanBuildDir() { 47 os.RemoveAll(BuildDir) 48 }