diff options
| -rw-r--r-- | flags/flags.go | 1 | ||||
| -rw-r--r-- | main.go | 19 | ||||
| -rw-r--r-- | paths/paths.go | 4 |
3 files changed, 20 insertions, 4 deletions
diff --git a/flags/flags.go b/flags/flags.go index a513019..2fbfdd5 100644 --- a/flags/flags.go +++ b/flags/flags.go @@ -12,4 +12,5 @@ var ( Yes = pflag.BoolP("yes", "y", false, "auto-confirm y/n confirmations") Env = pflag.StringArray("env", nil, "environment files or pre- or suffix") Version = pflag.BoolP("version", "v", false, "print version and exit") + List = pflag.BoolP("list", "l", false, "list available targets and exit") ) @@ -10,6 +10,7 @@ import ( "pik/indexers/pikdex" "pik/menu" "pik/model" + "pik/paths" "pik/run" "pik/runner/gnumake" "pik/runner/just" @@ -46,7 +47,8 @@ var version string func main() { pflag.Parse() - if *flags.Version { + switch { + case *flags.Version: _, _ = spool.Print("%s\n", version) os.Exit(0) } @@ -76,6 +78,7 @@ func main() { } var st *model.State var stateErrors []error + if !*flags.All { st, stateErrors = model.NewState(fs, locs, indexers, runners) } else { @@ -90,10 +93,18 @@ func main() { _, _ = spool.Warn("%v\n", stateErrors) } else { err = cache.Save(st) + if err != nil { + _, _ = spool.Warn("%v", err) + } } - if err != nil { - _, _ = spool.Warn("%v", err) + if *flags.List { + for _, s := range st.Sources { + for _, t := range s.Targets { + _, _ = spool.Print(t.ShortestId() + paths.Ifs) + } + } + os.Exit(0) } args := pflag.Args() @@ -130,7 +141,7 @@ func main() { } if target == nil { - _, _ = spool.Print("no target found.") + _, _ = spool.Print("target not found.") os.Exit(1) return } diff --git a/paths/paths.go b/paths/paths.go index 0445658..9721fa1 100644 --- a/paths/paths.go +++ b/paths/paths.go @@ -13,6 +13,7 @@ var ( This = "pik" Cache = filepath.Join(xdg.CacheHome, This) Config = filepath.Join(xdg.ConfigHome, This) + Ifs = os.Getenv("IFS") ) func init() { @@ -24,6 +25,9 @@ func init() { if err != nil { spool.Warn("%v\n", err) } + if Ifs == "" { + Ifs = "\n" + } } func ReplaceHome(input string) string { |
