fmt.Println(os.Args[0], "<-", cmdName)
if err := os.Symlink(os.Args[0], cmdName); err != nil {
rc = 1
- log.Println(err)
+ log.Print(err)
}
}
os.Exit(rc)
var err error
Cwd, err = os.Getwd()
if err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
TopDir = os.Getenv(EnvTopDir)
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)
// Those are internal envs
FdOODTgts, err = os.CreateTemp("", "ood-tgts")
if err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
if err = os.Remove(FdOODTgts.Name()); err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
FdOODTgtsLock, err = os.CreateTemp("", "ood-tgts.lock")
if err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
if err = os.Remove(FdOODTgtsLock.Name()); err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
if v := os.Getenv(EnvOODTgtsFd); v != "" {
Whence: io.SeekStart,
}
if err = unix.FcntlFlock(fdLock.Fd(), unix.F_SETLKW, &flock); err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
if _, err = fd.Seek(0, io.SeekStart); err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
tgtsRaw, err := io.ReadAll(bufio.NewReader(fd))
if err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
flock.Type = unix.F_UNLCK
if err = unix.FcntlFlock(fdLock.Fd(), unix.F_SETLK, &flock); err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
OODTgts = map[string]struct{}{}
for _, tgtRaw := range bytes.Split(tgtsRaw, []byte{0}) {
IsTopRedo = true
raw := new([16]byte)
if _, err = io.ReadFull(rand.Reader, raw[:]); err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
raw[6] = (raw[6] & 0x0F) | uint8(4<<4) // version 4
BuildUUID = fmt.Sprintf(
path.Join(Cwd, tgt),
)
if err != nil {
+ err = ErrLine(err)
break
}
err = ifcreate(fdDep, tgtRel)
err = stamp(fdDep, os.Stdin)
case CmdNameRedoLog:
if len(tgts) != 1 {
- log.Fatalln("single target expected")
+ log.Fatal("single target expected")
}
d, t := cwdAndTgt(tgts[0])
err = showBuildLog(d, t, nil, 0)
case CmdNameRedoWhichdo:
if len(tgts) != 1 {
- log.Fatalln("single target expected")
+ log.Fatal("single target expected")
}
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)
}
case CmdNameRedoAffects:
if tgtsWasEmpty {
- log.Fatalln("no targets specified")
+ log.Fatal("no targets specified")
}
var tgtsKnown []string
tgtsKnown, err = targetsWalker([]string{Cwd})
if err != nil {
+ err = ErrLine(err)
break
}
deps := map[string]map[string]struct{}{}
for _, tgt := range tgtsKnown {
- collectDeps(Cwd, tgt, 0, deps, true)
+ collectDeps(Cwd, tgt, 0, deps, true, map[string]struct{}{})
}
seen := map[string]struct{}{}
for _, tgt := range tgts {
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
}
}
log.Fatalln("unknown command", cmdName)
}
if err != nil {
- log.Println(err)
+ log.Print(err)
}
rc := 0
if !ok || err != nil {