aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cmd/mbf/main.go109
1 files changed, 58 insertions, 51 deletions
diff --git a/cmd/mbf/main.go b/cmd/mbf/main.go
index 2820b60c..1340d649 100644
--- a/cmd/mbf/main.go
+++ b/cmd/mbf/main.go
@@ -131,38 +131,69 @@ func main() {
)
}
- c.NewCommand(
- "info",
- "Display out-of-band metadata of an artifact",
- func(args []string) error {
- if len(args) == 0 {
- return errors.New("info requires at least 1 argument")
- }
+ {
+ var (
+ flagStatus bool
+ )
+ c.NewCommand(
+ "info",
+ "Display out-of-band metadata of an artifact",
+ func(args []string) error {
+ if len(args) == 0 {
+ return errors.New("info requires at least 1 argument")
+ }
- 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)
+ 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, "/"))
- }
+ meta := rosa.GetMetadata(p)
+ fmt.Println("description : " + meta.Description)
+ if meta.Website != "" {
+ fmt.Println("website : " +
+ strings.TrimSuffix(meta.Website, "/"))
+ }
- if i != len(args)-1 {
- fmt.Println()
+ if flagStatus {
+ const statusPrefix = "status : "
+ r, err := cache.OpenStatus(rosa.Std.Load(p))
+ if err != nil {
+ if errors.Is(err, os.ErrNotExist) {
+ fmt.Println(
+ statusPrefix + name + " was never cured",
+ )
+ } else {
+ return err
+ }
+ } else {
+ fmt.Print(statusPrefix)
+ _, err = io.Copy(os.Stdout, r)
+ if err = errors.Join(err, r.Close()); err != nil {
+ return err
+ }
+ }
+ }
+
+ if i != len(args)-1 {
+ fmt.Println()
+ }
}
}
- }
- return nil
- },
- )
+ return nil
+ },
+ ).
+ Flag(
+ &flagStatus,
+ "status", command.BoolFlag(false),
+ "Display cure status if available",
+ )
+ }
c.NewCommand("updates", command.UsageInternal, func([]string) error {
var n int
@@ -323,30 +354,6 @@ func main() {
)
}
- c.NewCommand(
- "status",
- "Display the status file of an artifact",
- func(args []string) error {
- if len(args) != 1 {
- return errors.New("status requires 1 argument")
- }
- if p, ok := rosa.ResolveName(args[0]); !ok {
- return fmt.Errorf("unknown artifact %q", args[0])
- } else {
- r, err := cache.OpenStatus(rosa.Std.Load(p))
- if err != nil {
- if errors.Is(err, os.ErrNotExist) {
- return errors.New(args[0] + " was never cured")
- }
- return err
- }
-
- _, err = io.Copy(os.Stdout, r)
- return errors.Join(err, r.Close())
- }
- },
- )
-
{
var (
flagNet bool