50 lines
No EOL
1.2 KiB
Go
50 lines
No EOL
1.2 KiB
Go
package Commands
|
|
|
|
import (
|
|
"github.com/olekukonko/tablewriter"
|
|
"github.com/urfave/cli/v2"
|
|
"lpm-cli/Lotus"
|
|
"os"
|
|
)
|
|
|
|
func NewSearchCommand() *cli.Command {
|
|
|
|
logger := Lotus.Logger("searchCommand")
|
|
|
|
return &cli.Command {
|
|
Name: "search",
|
|
Usage: "Seaches a packages",
|
|
Description: "Sends a search request to the default registry server, or to a user-defined registry server",
|
|
HelpName: "search",
|
|
Action: func(c *cli.Context) error {
|
|
|
|
var query string
|
|
|
|
if len(os.Args) > 3{
|
|
query = os.Args[2] + " " + os.Args[3]
|
|
} else {
|
|
query = os.Args[2]
|
|
}
|
|
|
|
packages := SearchPackages(Lotus.Platform(), Lotus.Architecture(), query)
|
|
|
|
//sample code
|
|
table := tablewriter.NewWriter(os.Stdout)
|
|
table.SetHeader([]string{"Publisher", "Package", "Description", "Latest Version", "Registry"})
|
|
|
|
for _, pkg := range packages {
|
|
table.Append([]string{pkg.PackageMetadata.Publisher, pkg.PackageMetadata.Name, pkg.PackageMetadata.Description, pkg.PackageMetadata.Version, pkg.Register.Register})
|
|
}
|
|
table.Render()
|
|
//Sample code end
|
|
|
|
return nil
|
|
},
|
|
OnUsageError: func(c *cli.Context, err error, isSubcommand bool) error {
|
|
if err != nil{
|
|
logger.Fatal(err)
|
|
}
|
|
return err
|
|
},
|
|
}
|
|
} |