cmd/mbf: merge status and info commands
All checks were successful
Test / Create distribution (push) Successful in 58s
Test / Sandbox (push) Successful in 2m32s
Test / Hakurei (push) Successful in 3m52s
Test / ShareFS (push) Successful in 4m6s
Test / Sandbox (race detector) (push) Successful in 5m4s
Test / Hakurei (race detector) (push) Successful in 5m55s
Test / Flake checks (push) Successful in 1m24s
All checks were successful
Test / Create distribution (push) Successful in 58s
Test / Sandbox (push) Successful in 2m32s
Test / Hakurei (push) Successful in 3m52s
Test / ShareFS (push) Successful in 4m6s
Test / Sandbox (race detector) (push) Successful in 5m4s
Test / Hakurei (race detector) (push) Successful in 5m55s
Test / Flake checks (push) Successful in 1m24s
This is cleaner, and offers better integration with the work-in-progress report file. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
109
cmd/mbf/main.go
109
cmd/mbf/main.go
@@ -131,38 +131,69 @@ func main() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
c.NewCommand(
|
{
|
||||||
"info",
|
var (
|
||||||
"Display out-of-band metadata of an artifact",
|
flagStatus bool
|
||||||
func(args []string) error {
|
)
|
||||||
if len(args) == 0 {
|
c.NewCommand(
|
||||||
return errors.New("info requires at least 1 argument")
|
"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 {
|
for i, name := range args {
|
||||||
if p, ok := rosa.ResolveName(name); !ok {
|
if p, ok := rosa.ResolveName(name); !ok {
|
||||||
return fmt.Errorf("unknown artifact %q", name)
|
return fmt.Errorf("unknown artifact %q", name)
|
||||||
} else {
|
} else {
|
||||||
var suffix string
|
var suffix string
|
||||||
if version := rosa.Std.Version(p); version != rosa.Unversioned {
|
if version := rosa.Std.Version(p); version != rosa.Unversioned {
|
||||||
suffix += "-" + version
|
suffix += "-" + version
|
||||||
}
|
}
|
||||||
fmt.Println("name : " + name + suffix)
|
fmt.Println("name : " + name + suffix)
|
||||||
|
|
||||||
meta := rosa.GetMetadata(p)
|
meta := rosa.GetMetadata(p)
|
||||||
fmt.Println("description : " + meta.Description)
|
fmt.Println("description : " + meta.Description)
|
||||||
if meta.Website != "" {
|
if meta.Website != "" {
|
||||||
fmt.Println("website : " + strings.TrimSuffix(meta.Website, "/"))
|
fmt.Println("website : " +
|
||||||
}
|
strings.TrimSuffix(meta.Website, "/"))
|
||||||
|
}
|
||||||
|
|
||||||
if i != len(args)-1 {
|
if flagStatus {
|
||||||
fmt.Println()
|
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 {
|
c.NewCommand("updates", command.UsageInternal, func([]string) error {
|
||||||
var n int
|
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 (
|
var (
|
||||||
flagNet bool
|
flagNet bool
|
||||||
|
|||||||
Reference in New Issue
Block a user