Skip to content

Commit

Permalink
Fix handling of absolute paths in targets
Browse files Browse the repository at this point in the history
  • Loading branch information
zyedidia committed Sep 1, 2023
1 parent 57ee7bf commit f7d4e39
Showing 1 changed file with 6 additions and 20 deletions.
26 changes: 6 additions & 20 deletions rules/graph.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,7 @@ func (n *node) setDone(db *Database, noexec, hash bool) bool {
if n.rule.attrs.Dep != "" {
prereqs := loadDeps(n.dir, nil, n.rule.attrs.Dep, n.myTarget, n.optional)
for _, p := range prereqs {
path, err := relify(p.name)
if err != nil {
panic(err)
}
path := relify(p.name)
db.Prereqs.insert(n.rule.targets, path, n.dir)
}
}
Expand Down Expand Up @@ -220,33 +217,22 @@ func NewGraph(rs *RuleSet, target string, updated map[string]bool) (g *Graph, er

func rel(basepath, targpath string) (string, error) {
if filepath.IsAbs(targpath) {
var err error
targpath, err = relify(targpath)
if err != nil {
return "", err
}
return targpath, nil
}
return filepath.Rel(basepath, targpath)
}

// make an absolute path relative to the cwd
func relify(path string) (string, error) {
func relify(path string) string {
if filepath.IsAbs(path) {
cwd, err := os.Getwd()
if err != nil {
return "", err
}
return filepath.Rel(cwd, path)
return path
}
// already relative
return path, nil
return path
}

func (g *Graph) resolveTarget(target prereq, visits []int, updated map[string]bool) (*node, error) {
fulltarget, err := relify(target.name)
if err != nil {
return nil, err
}
fulltarget := relify(target.name)

// do we have a node that builds target already
// if the node has an empty recipe, we don't use it because it could be a
Expand Down

0 comments on commit f7d4e39

Please sign in to comment.