@@ -43,21 +43,19 @@ func initSearchCommand() *cobra.Command {
43
43
Args : cobra .ArbitraryArgs ,
44
44
Run : runSearchCommand ,
45
45
}
46
- searchCommand .Flags ().BoolVar (& searchFlags .names , "names" , false , "Show library names only." )
46
+ searchCommand .Flags ().BoolVar (& searchFlags .namesOnly , "names" , false , "Show library names only." )
47
47
return searchCommand
48
48
}
49
49
50
50
var searchFlags struct {
51
- names bool // if true outputs lib names only.
51
+ namesOnly bool // if true outputs lib names only.
52
52
}
53
53
54
54
func runSearchCommand (cmd * cobra.Command , args []string ) {
55
55
instance := cli .CreateLibManagerOnlyInstace ()
56
56
logrus .Info ("Executing `arduino lib search`" )
57
- //arguments :=
58
57
searchResp , err := lib .LibrarySearch (context .Background (), & rpc.LibrarySearchReq {
59
58
Instance : instance ,
60
- Names : searchFlags .names ,
61
59
Query : (strings .Join (args , " " )),
62
60
})
63
61
if err != nil {
@@ -67,33 +65,37 @@ func runSearchCommand(cmd *cobra.Command, args []string) {
67
65
68
66
if cli .OutputJSONOrElse (searchResp ) {
69
67
results := searchResp .GetLibraries ()
70
- if len (results ) > 0 {
71
- for _ , out := range results {
72
- fmt .Println (searchedLibraryToString (out , searchFlags .names ))
68
+ sort .Slice (results , func (i , j int ) bool {
69
+ return results [i ].Name < results [j ].Name
70
+ })
71
+ if searchFlags .namesOnly {
72
+ for _ , result := range results {
73
+ fmt .Println (result .Name )
73
74
}
74
75
} else {
75
- formatter .Print ("No libraries matching your search." )
76
+ if len (results ) > 0 {
77
+ for _ , result := range results {
78
+ outputSearchedLibrary (result )
79
+ }
80
+ } else {
81
+ formatter .Print ("No libraries matching your search." )
82
+ }
76
83
}
77
84
}
78
85
logrus .Info ("Done" )
79
86
}
80
87
81
- func searchedLibraryToString (lsr * rpc.SearchedLibrary , names bool ) string {
82
- ret := ""
83
-
84
- ret += fmt .Sprintf ("Name: \" %s\" \n " , lsr .Name )
85
- if ! names {
86
- ret += fmt .Sprintln (" Author: " , lsr .GetLatest ().Author ) +
87
- fmt .Sprintln (" Maintainer: " , lsr .GetLatest ().Maintainer ) +
88
- fmt .Sprintln (" Sentence: " , lsr .GetLatest ().Sentence ) +
89
- fmt .Sprintln (" Paragraph: " , lsr .GetLatest ().Paragraph ) +
90
- fmt .Sprintln (" Website: " , lsr .GetLatest ().Website ) +
91
- fmt .Sprintln (" Category: " , lsr .GetLatest ().Category ) +
92
- fmt .Sprintln (" Architecture: " , strings .Join (lsr .GetLatest ().Architectures , ", " )) +
93
- fmt .Sprintln (" Types: " , strings .Join (lsr .GetLatest ().Types , ", " )) +
94
- fmt .Sprintln (" Versions: " , strings .Replace (fmt .Sprint (versionsFromSearchedLibrary (lsr )), " " , ", " , - 1 ))
95
- }
96
- return strings .TrimSpace (ret )
88
+ func outputSearchedLibrary (lsr * rpc.SearchedLibrary ) {
89
+ fmt .Printf ("Name: \" %s\" \n " , lsr .Name )
90
+ fmt .Printf (" Author: %s\n " , lsr .GetLatest ().Author )
91
+ fmt .Printf (" Maintainer: %s\n " , lsr .GetLatest ().Maintainer )
92
+ fmt .Printf (" Sentence: %s\n " , lsr .GetLatest ().Sentence )
93
+ fmt .Printf (" Paragraph: %s\n " , lsr .GetLatest ().Paragraph )
94
+ fmt .Printf (" Website: %s\n " , lsr .GetLatest ().Website )
95
+ fmt .Printf (" Category: %s\n " , lsr .GetLatest ().Category )
96
+ fmt .Printf (" Architecture: %s\n " , strings .Join (lsr .GetLatest ().Architectures , ", " ))
97
+ fmt .Printf (" Types: %s\n " , strings .Join (lsr .GetLatest ().Types , ", " ))
98
+ fmt .Printf (" Versions: %s\n " , strings .Replace (fmt .Sprint (versionsFromSearchedLibrary (lsr )), " " , ", " , - 1 ))
97
99
}
98
100
99
101
func versionsFromSearchedLibrary (library * rpc.SearchedLibrary ) []* semver.Version {
0 commit comments