10 TgtCache = make(map[string]*Tgt)
11 TgtCacheM sync.RWMutex
14 func mustAbs(pth string) string {
15 pth, err := filepath.Abs(pth)
22 func mustRel(basepath, targpath string) string {
23 pth, err := filepath.Rel(basepath, targpath)
30 func cwdMustRel(paths ...string) string {
31 return mustRel(Cwd, path.Join(paths...))
34 func pathSplit(a string) (h, t string) {
43 a string // absolute path
44 rel string // relative to Cwd
45 dep string // path to dependency file
48 func NewTgt(tgt string) *Tgt {
60 dep: path.Join(h, RedoDir, t+DepSuffix),
68 func (tgt *Tgt) String() string {
72 func (tgt *Tgt) RelTo(cwd string) string {
73 return mustRel(cwd, tgt.a)