]> Cypherpunks.ru repositories - goredo.git/blobdiff - main.go
Recursively search for all sources. Ability to narrow results
[goredo.git] / main.go
diff --git a/main.go b/main.go
index f6668c2425aeb614dc7103a1f71a709f81700689..092d38957ce4cd50bbef6cacaa8db5d88c45c65b 100644 (file)
--- a/main.go
+++ b/main.go
@@ -226,6 +226,7 @@ func main() {
 
        tgts := flag.Args()
        BuildUUID = os.Getenv(EnvBuildUUID)
+       tgtsWasEmpty := len(tgts) == 0
        if BuildUUID == "" {
                raw := new([16]byte)
                if _, err = io.ReadFull(rand.Reader, raw[:]); err != nil {
@@ -236,7 +237,7 @@ func main() {
                        "%x-%x-%x-%x-%x",
                        raw[0:4], raw[4:6], raw[6:8], raw[8:10], raw[10:],
                )
-               if len(tgts) == 0 {
+               if tgtsWasEmpty {
                        tgts = []string{"all"}
                }
        }
@@ -359,13 +360,24 @@ CmdSwitch:
                        fmt.Println(rel)
                }
        case "redo-targets":
-               tgts, err = targetsWalker(Cwd)
+               if tgtsWasEmpty {
+                       tgts = []string{Cwd}
+               }
+               tgts, err = targetsWalker(tgts)
+               if err != nil {
+                       break
+               }
                sort.Strings(tgts)
                for _, tgt := range tgts {
                        fmt.Println(tgt)
                }
        case "redo-ood":
-               tgts, err = targetsWalker(Cwd)
+               if tgtsWasEmpty {
+                       tgts, err = targetsWalker([]string{Cwd})
+                       if err != nil {
+                               break
+                       }
+               }
                sort.Strings(tgts)
                var ood bool
                for _, tgt := range tgts {
@@ -378,10 +390,18 @@ CmdSwitch:
                        }
                }
        case "redo-sources":
-               tgts, err = sourcesWalker()
+               if tgtsWasEmpty {
+                       tgts, err = targetsWalker([]string{Cwd})
+                       if err != nil {
+                               break
+                       }
+               }
                sort.Strings(tgts)
-               for _, tgt := range tgts {
-                       fmt.Println(tgt)
+               var srcs []string
+               srcs, err = sourcesWalker(tgts)
+               sort.Strings(srcs)
+               for _, src := range srcs {
+                       fmt.Println(src)
                }
        default:
                log.Fatalln("unknown command", cmdName)