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 }, } }