if TopDir == "" {
TopDir = "/"
} else {
- TopDir, err = filepath.Abs(TopDir)
- if err != nil {
- panic(err)
- }
+ TopDir = mustAbs(TopDir)
}
DirPrefix = os.Getenv(EnvDirPrefix)
DepCwd = os.Getenv(EnvDepCwd)
path.Join(Cwd, tgt),
)
if err != nil {
+ err = ErrLine(err)
break
}
err = ifcreate(fdDep, tgtRel)
var fdTmp *os.File
fdTmp, err = os.CreateTemp("", "whichdo")
if err != nil {
+ err = ErrLine(err)
break
}
if err = os.Remove(fdTmp.Name()); err != nil {
+ err = ErrLine(err)
break
}
cwd, tgt := cwdAndTgt(tgts[0])
doFile, upLevels, err := findDo(fdTmp, cwd, tgt)
if err != nil {
+ err = ErrLine(err)
break
}
_, err = fdTmp.Seek(0, io.SeekStart)
if err != nil {
+ err = ErrLine(err)
break
}
r := recfile.NewReader(fdTmp)
if errors.Is(err, io.EOF) {
break
}
+ err = ErrLine(err)
break CmdSwitch
}
fmt.Println(cwdMustRel(cwd, m["Target"]))
p = append(p, "..")
}
p = append(p, doFile)
- rel, err := filepath.Rel(Cwd, path.Join(p...))
- if err != nil {
- panic(err)
- }
+ rel := mustRel(Cwd, path.Join(p...))
fmt.Println(rel)
}
case CmdNameRedoTargets:
}
tgts, err = targetsWalker(tgts)
if err != nil {
+ err = ErrLine(err)
break
}
sort.Strings(tgts)
var tgtsKnown []string
tgtsKnown, err = targetsWalker([]string{Cwd})
if err != nil {
+ err = ErrLine(err)
break
}
deps := map[string]map[string]struct{}{}
for _, tgt := range tgts {
ood, err = isOOD(Cwd, tgt, 0, nil)
if err != nil {
+ err = ErrLine(err)
break
}
if ood {
if tgtsWasEmpty {
tgts, err = targetsWalker([]string{Cwd})
if err != nil {
+ err = ErrLine(err)
break
}
}
sort.Strings(tgts)
var srcs []string
srcs, err = sourcesWalker(tgts)
+ err = ErrLine(err)
sort.Strings(srcs)
for _, src := range srcs {
fmt.Println(src)
for _, tgt := range tgts {
inode, err = inodeFromFileByPath(tgt)
if err != nil {
+ err = ErrLine(err)
break
}
err = recfileWrite(os.Stdout, append(
[]recfile.Field{{Name: "Target", Value: tgt}},
inode.RecfileFields()...)...)
if err != nil {
+ err = ErrLine(err)
break
}
}