X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=main.go;h=f8ad7dd423c30052820f392994296cdaaf1acabb;hb=19b13ea1334d377dd9c6a36ea70c9141b8fd447d;hp=63de9315f942dd96e5cbfdb3147daba8fd880ed7;hpb=4dea8061673b04d0225887f1f8d73392823e4e9e;p=goredo.git diff --git a/main.go b/main.go index 63de931..f8ad7dd 100644 --- a/main.go +++ b/main.go @@ -25,7 +25,6 @@ import ( "flag" "fmt" "io" - "io/ioutil" "log" "os" "os/signal" @@ -62,6 +61,7 @@ var ( Cwd string BuildUUID string IsTopRedo bool // is it the top redo instance + UmaskCur int ) func mustSetenv(key string) { @@ -134,6 +134,9 @@ func main() { } log.SetFlags(log.Lshortfile) + UmaskCur = syscall.Umask(0) + syscall.Umask(UmaskCur) + var err error Cwd, err = os.Getwd() if err != nil { @@ -198,6 +201,7 @@ func main() { } NoColor = os.Getenv(EnvNoColor) != "" NoSync = os.Getenv(EnvNoSync) == "1" + StopIfMod = os.Getenv(EnvStopIfMod) == "1" switch s := os.Getenv(EnvInodeTrust); s { case "none": InodeTrust = InodeTrustNone @@ -211,14 +215,14 @@ func main() { tracef(CDebug, "inode-trust: %s", InodeTrust) // Those are internal envs - FdOODTgts, err = ioutil.TempFile("", "ood-tgts") + FdOODTgts, err = os.CreateTemp("", "ood-tgts") if err != nil { log.Fatalln(err) } if err = os.Remove(FdOODTgts.Name()); err != nil { log.Fatalln(err) } - FdOODTgtsLock, err = ioutil.TempFile("", "ood-tgts.lock") + FdOODTgtsLock, err = os.CreateTemp("", "ood-tgts.lock") if err != nil { log.Fatalln(err) } @@ -239,7 +243,7 @@ func main() { if _, err = fd.Seek(0, io.SeekStart); err != nil { log.Fatalln(err) } - tgtsRaw, err := ioutil.ReadAll(bufio.NewReader(fd)) + tgtsRaw, err := io.ReadAll(bufio.NewReader(fd)) if err != nil { log.Fatalln(err) } @@ -334,7 +338,7 @@ CmdSwitch: } } case CmdNameRedoIfchange: - ok, err = ifchange(tgts, false, traced) + ok, err = ifchange(tgts, *flagForcedIfchange, traced) if err == nil { err = depsWrite(fdDep, tgts) } @@ -385,7 +389,7 @@ CmdSwitch: log.Fatalln("single target expected") } var fdTmp *os.File - fdTmp, err = ioutil.TempFile("", "whichdo") + fdTmp, err = os.CreateTemp("", "whichdo") if err != nil { break }