]> Cypherpunks.ru repositories - goredo.git/blobdiff - main.go
Explicitly check if $1 unexpectedly appears
[goredo.git] / main.go
diff --git a/main.go b/main.go
index 0bb9357e9bf021dcc3c46a085cba5c1a4bd529ea..67c428c14a6b6661bdc9bf94ae4dac0a0cf1062b 100644 (file)
--- a/main.go
+++ b/main.go
@@ -127,7 +127,7 @@ func main() {
                }
                os.Exit(rc)
        }
-       log.SetFlags(0)
+       log.SetFlags(log.Lshortfile)
 
        var err error
        Cwd, err = os.Getwd()
@@ -199,31 +199,31 @@ func main() {
        // Those are internal envs
        FdOODTgts, err = ioutil.TempFile("", "ood-tgts")
        if err != nil {
-               panic(err)
+               log.Fatalln(err)
        }
        if err = os.Remove(FdOODTgts.Name()); err != nil {
-               panic(err)
+               log.Fatalln(err)
        }
        FdOODTgtsLock, err = ioutil.TempFile("", "ood-tgts.lock")
        if err != nil {
-               panic(err)
+               log.Fatalln(err)
        }
        if err = os.Remove(FdOODTgtsLock.Name()); err != nil {
-               panic(err)
+               log.Fatalln(err)
        }
 
        if v := os.Getenv(EnvOODTgtsFd); v != "" {
                fd := mustParseFd(v, EnvOODTgtsFd)
                fdLock := mustParseFd(v, EnvOODTgtsLockFd)
                if err = unix.Flock(int(fdLock.Fd()), unix.LOCK_EX); err != nil {
-                       panic(err)
+                       log.Fatalln(err)
                }
                if _, err = fd.Seek(0, io.SeekStart); err != nil {
-                       panic(err)
+                       log.Fatalln(err)
                }
                tgtsRaw, err := ioutil.ReadAll(bufio.NewReader(fd))
                if err != nil {
-                       panic(err)
+                       log.Fatalln(err)
                }
                unix.Flock(int(fdLock.Fd()), unix.LOCK_UN)
                OODTgts = map[string]struct{}{}
@@ -308,7 +308,14 @@ CmdSwitch:
                        log.Fatalln("no", EnvDepFd)
                }
                for _, tgt := range tgts {
-                       err = ifcreate(fdDep, tgt)
+                       tgtRel, err := filepath.Rel(
+                               filepath.Join(Cwd, DirPrefix),
+                               filepath.Join(Cwd, tgt),
+                       )
+                       if err != nil {
+                               break
+                       }
+                       err = ifcreate(fdDep, tgtRel)
                        if err != nil {
                                break
                        }
@@ -337,12 +344,7 @@ CmdSwitch:
                        log.Fatalln("single target expected")
                }
                d, t := cwdAndTgt(tgts[0])
-               var fd *os.File
-               fd, err = os.Open(path.Join(d, RedoDir, t+LogSuffix))
-               if err != nil {
-                       break
-               }
-               _, err = io.Copy(os.Stdout, fd)
+               err = showBuildLog(d, t, nil, 0)
        case CmdNameRedoWhichdo:
                if len(tgts) != 1 {
                        log.Fatalln("single target expected")