diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-04-16 16:00:32 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-04-16 17:43:52 +0900 |
| commit | 823575acaccfb34d908dad2ae14551fa425d7431 (patch) | |
| tree | f9df2fc4a28169e89a90a8477188e84bbe3077b2 /cmd/mbf/main.go | |
| parent | 136bc0917be7c02b818bfc8d4d54ec8ffbc8d21b (diff) | |
cmd/mbf: move info command
This is cleaner with less shared state.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'cmd/mbf/main.go')
| -rw-r--r-- | cmd/mbf/main.go | 95 |
1 files changed, 1 insertions, 94 deletions
diff --git a/cmd/mbf/main.go b/cmd/mbf/main.go index bfa2aa07..675f8bb2 100644 --- a/cmd/mbf/main.go +++ b/cmd/mbf/main.go @@ -24,7 +24,6 @@ import ( "path/filepath" "runtime" "strconv" - "strings" "sync" "sync/atomic" "syscall" @@ -149,99 +148,7 @@ func main() { "info", "Display out-of-band metadata of an artifact", func(args []string) (err error) { - if len(args) == 0 { - return errors.New("info requires at least 1 argument") - } - - var r *rosa.Report - if flagReport != "" { - if r, err = rosa.OpenReport(flagReport); err != nil { - return err - } - defer func() { - if closeErr := r.Close(); err == nil { - err = closeErr - } - }() - defer r.HandleAccess(&err)() - } - - for i, name := range args { - if p, ok := rosa.ResolveName(name); !ok { - return fmt.Errorf("unknown artifact %q", name) - } else { - var suffix string - if version := rosa.Std.Version(p); version != rosa.Unversioned { - suffix += "-" + version - } - fmt.Println("name : " + name + suffix) - - meta := rosa.GetMetadata(p) - fmt.Println("description : " + meta.Description) - if meta.Website != "" { - fmt.Println("website : " + - strings.TrimSuffix(meta.Website, "/")) - } - if len(meta.Dependencies) > 0 { - fmt.Print("depends on :") - for _, d := range meta.Dependencies { - s := rosa.GetMetadata(d).Name - if version := rosa.Std.Version(d); version != rosa.Unversioned { - s += "-" + version - } - fmt.Print(" " + s) - } - fmt.Println() - } - - const statusPrefix = "status : " - if flagStatus { - if r == nil { - var f io.ReadSeekCloser - err = cm.Do(func(cache *pkg.Cache) (err error) { - f, err = cache.OpenStatus(rosa.Std.Load(p)) - return - }) - if err != nil { - if errors.Is(err, os.ErrNotExist) { - fmt.Println( - statusPrefix + "not yet cured", - ) - } else { - return - } - } else { - fmt.Print(statusPrefix) - _, err = io.Copy(os.Stdout, f) - if err = errors.Join(err, f.Close()); err != nil { - return - } - } - } else if err = cm.Do(func(cache *pkg.Cache) (err error) { - status, n := r.ArtifactOf(cache.Ident(rosa.Std.Load(p))) - if status == nil { - fmt.Println( - statusPrefix + "not in report", - ) - } else { - fmt.Println("size :", n) - fmt.Print(statusPrefix) - if _, err = os.Stdout.Write(status); err != nil { - return - } - } - return - }); err != nil { - return - } - } - - if i != len(args)-1 { - fmt.Println() - } - } - } - return nil + return commandInfo(&cm, args, os.Stdout, flagStatus, flagReport) }, ). Flag( |
