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  }