]> Cypherpunks.ru repositories - goredo.git/blobdiff - main.go
Fix dependencies relative paths determination
[goredo.git] / main.go
diff --git a/main.go b/main.go
index c545dce0da4a791228b6a343850f4b78ed46b52f..ed82856be37f842e6c66f9a0607d191388cb40ac 100644 (file)
--- a/main.go
+++ b/main.go
@@ -1,6 +1,6 @@
 /*
 goredo -- redo implementation on pure Go
-Copyright (C) 2020 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2020-2021 Sergey Matveev <stargrave@stargrave.org>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -59,7 +59,7 @@ func mustParseFd(v, name string) *os.File {
 func main() {
        version := flag.Bool("version", false, "print version")
        warranty := flag.Bool("warranty", false, "print warranty information")
-       symlinks := flag.Bool("symlinks", false, "create necessary symlinks in current direcotyr")
+       symlinks := flag.Bool("symlinks", false, "create necessary symlinks in current directory")
 
        flag.Usage = usage
        flag.Parse()
@@ -112,6 +112,7 @@ func main() {
                        panic(err)
                }
        }
+       DirPrefix = os.Getenv(EnvDirPrefix)
 
        if *flagStderrKeep {
                mustSetenv(EnvStderrKeep, "1")
@@ -119,6 +120,9 @@ func main() {
        if *flagStderrSilent {
                mustSetenv(EnvStderrSilent, "1")
        }
+       if *flagNoProgress {
+               mustSetenv(EnvNoProgress, "1")
+       }
        if *flagDebug {
                mustSetenv(EnvDebug, "1")
        }
@@ -136,6 +140,7 @@ func main() {
        }
        StderrKeep = os.Getenv(EnvStderrKeep) == "1"
        StderrSilent = os.Getenv(EnvStderrSilent) == "1"
+       NoProgress = os.Getenv(EnvNoProgress) == "1"
        Debug = os.Getenv(EnvDebug) == "1"
        LogWait = os.Getenv(EnvLogWait) == "1"
        LogLock = os.Getenv(EnvLogLock) == "1"
@@ -195,7 +200,10 @@ func main() {
        ok := true
        err = nil
        cmdName := path.Base(os.Args[0])
-       trace(CDebug, "[%s] run: %s %s [%s]", BuildUUID, cmdName, tgts, Cwd)
+       trace(
+               CDebug, "[%s] run: %s %s cwd:%s dirprefix:%s",
+               BuildUUID, cmdName, tgts, Cwd, DirPrefix,
+       )
 
 CmdSwitch:
        switch cmdName {
@@ -208,7 +216,9 @@ CmdSwitch:
                }
        case "redo-ifchange":
                ok, err = ifchange(tgts, false, traced)
-               writeDeps(fdDep, tgts)
+               if err == nil {
+                       err = writeDeps(fdDep, tgts)
+               }
        case "redo-ifcreate":
                if fdDep == nil {
                        log.Fatalln("no", EnvDepFd)