summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorewy <ewy0@protonmail.com>2026-04-14 21:56:19 +0200
committerewy <ewy0@protonmail.com>2026-04-14 21:56:19 +0200
commit6a22a1ee7bfd1fbd34486a224db98eb6aead5c3e (patch)
tree4edcb669880850c4747b39ef063bcaa53f1fc648
parent213d3f11728204b1b4c37058d3f1fa1a72dcac4d (diff)
add --listHEADmaster
-rw-r--r--flags/flags.go1
-rw-r--r--main.go19
-rw-r--r--paths/paths.go4
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")
)
diff --git a/main.go b/main.go
index a30c08f..d44272d 100644
--- a/main.go
+++ b/main.go
@@ -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 {