@@ -18,34 +18,33 @@ import (
18
18
)
19
19
20
20
type config struct {
21
- oFlag bool
22
- rFlag bool
23
- uFlag bool
21
+ orgFlag bool
22
+ repoFlag bool
23
+ userFlag bool
24
24
maxFlag int
25
- cFlag bool
26
- ghFlag bool
27
- glFlag bool
28
- sFlag bool
29
- vFlag bool
25
+ cleanFlag bool
26
+ ghOnlyFlag bool
27
+ glOnlyFlag bool
28
+ simpleFlag bool
29
+ verboseFlag bool
30
30
}
31
31
32
32
var (
33
- flags = config {}
34
- urlRegexp = regexp .MustCompile (`^https?://(?:www\.)?([^/]+)` )
35
- spaceRegexp = regexp .MustCompile (`\s+` )
36
- wordPatterns = []string {"" , "-" , "" }
33
+ flags = config {}
34
+ urlRegexp = regexp .MustCompile (`^https?://(?:www\.)?([^/]+)` )
35
+ spaceRegexp = regexp .MustCompile (`\s+` )
37
36
)
38
37
39
38
func init () {
40
- flag .BoolVar (& flags .oFlag , "o" , false , "search for organization names" )
41
- flag .BoolVar (& flags .rFlag , "r" , false , "search for repository names" )
42
- flag .BoolVar (& flags .uFlag , "u" , false , "search for username matches" )
39
+ flag .BoolVar (& flags .orgFlag , "o" , false , "search for organization names" )
40
+ flag .BoolVar (& flags .repoFlag , "r" , false , "search for repository names" )
41
+ flag .BoolVar (& flags .userFlag , "u" , false , "search for username matches" )
43
42
flag .IntVar (& flags .maxFlag , "max" , 10 , "maximum search results per category" )
44
- flag .BoolVar (& flags .cFlag , "c" , false , "clean input URLs" )
45
- flag .BoolVar (& flags .ghFlag , "gh" , false , "search only GitHub" )
46
- flag .BoolVar (& flags .glFlag , "gl" , false , "search only GitLab" )
47
- flag .BoolVar (& flags .sFlag , "s" , false , "simple output style for piping to another tool" )
48
- flag .BoolVar (& flags .vFlag , "v" , false , "enable verbose mode" )
43
+ flag .BoolVar (& flags .cleanFlag , "c" , false , "clean input URLs" )
44
+ flag .BoolVar (& flags .ghOnlyFlag , "gh" , false , "search only GitHub" )
45
+ flag .BoolVar (& flags .glOnlyFlag , "gl" , false , "search only GitLab" )
46
+ flag .BoolVar (& flags .simpleFlag , "s" , false , "simple output style for piping to another tool" )
47
+ flag .BoolVar (& flags .verboseFlag , "v" , false , "enable verbose mode" )
49
48
}
50
49
51
50
func main () {
@@ -62,15 +61,15 @@ func main() {
62
61
}
63
62
64
63
func validateFlags (cfg config ) {
65
- if ! (cfg .oFlag || cfg .rFlag || cfg .uFlag ) {
64
+ if ! (cfg .orgFlag || cfg .repoFlag || cfg .userFlag ) {
66
65
fmt .Println ("At least one search flag (-o, -r, or -u) must be specified" )
67
66
os .Exit (1 )
68
67
}
69
68
verbosePrint ("Flags validated.\n " )
70
69
}
71
70
72
71
func verbosePrint (format string , a ... interface {}) {
73
- if flags .vFlag {
72
+ if flags .verboseFlag {
74
73
fmt .Printf (format , a ... )
75
74
}
76
75
}
@@ -96,7 +95,7 @@ func readAndCleanWords(cfg config, args []string) map[string]struct{} {
96
95
}
97
96
98
97
func processWord (word string , words map [string ]struct {}, cfg config ) {
99
- if cfg .cFlag {
98
+ if cfg .cleanFlag {
100
99
word = cleanWord (word )
101
100
}
102
101
@@ -123,7 +122,7 @@ func checkScannerError(scanner *bufio.Scanner) {
123
122
}
124
123
125
124
func searchPlatforms (words map [string ]struct {}, cfg config ) {
126
- ghClient , ghErr := createGithubClient ()
125
+ ghClient , ghErr := createGitHubClient ()
127
126
glClient , glErr := createGitLabClient ()
128
127
129
128
if ghErr != nil {
@@ -135,12 +134,12 @@ func searchPlatforms(words map[string]struct{}, cfg config) {
135
134
}
136
135
137
136
for word := range words {
138
- if ! cfg .glFlag && ghErr == nil {
137
+ if ! cfg .glOnlyFlag && ghErr == nil {
139
138
verbosePrint ("Searching GitHub for word: %s\n " , word )
140
139
searchGitHub (ghClient , word , cfg )
141
140
}
142
141
143
- if ! cfg .ghFlag && glErr == nil {
142
+ if ! cfg .ghOnlyFlag && glErr == nil {
144
143
verbosePrint ("Searching GitLab for word: %s\n " , word )
145
144
searchGitLab (glClient , word , cfg )
146
145
}
@@ -166,15 +165,15 @@ func searchGitHub(client *github.Client, query string, cfg config) {
166
165
return
167
166
}
168
167
169
- if cfg .oFlag {
168
+ if cfg .orgFlag {
170
169
searchGitHubOrganizations (client , query , cfg .maxFlag )
171
170
}
172
171
173
- if cfg .rFlag {
172
+ if cfg .repoFlag {
174
173
searchGitHubRepositories (client , query , cfg .maxFlag )
175
174
}
176
175
177
- if cfg .uFlag {
176
+ if cfg .userFlag {
178
177
searchGitHubUsers (client , query , cfg .maxFlag )
179
178
}
180
179
}
@@ -184,11 +183,11 @@ func searchGitLab(client *gitlab.Client, query string, cfg config) {
184
183
return
185
184
}
186
185
187
- if cfg .oFlag || cfg .uFlag {
186
+ if cfg .orgFlag || cfg .userFlag {
188
187
searchGitLabGroupsAndUsers (client , query , cfg .maxFlag )
189
188
}
190
189
191
- if cfg .rFlag {
190
+ if cfg .repoFlag {
192
191
searchGitLabProjects (client , query , cfg .maxFlag )
193
192
}
194
193
}
@@ -247,7 +246,7 @@ func searchGitHubUsers(client *github.Client, query string, maxResults int) {
247
246
printResults (fmt .Sprintf ("GitHub users matching '%s'" , query ), userLogins )
248
247
}
249
248
250
- func createGithubClient () (* github.Client , error ) {
249
+ func createGitHubClient () (* github.Client , error ) {
251
250
ctx := context .Background ()
252
251
token := os .Getenv ("GITHUB_ACCESS_TOKEN" )
253
252
if token == "" {
@@ -289,7 +288,7 @@ func searchGitLabGroupsAndUsers(client *gitlab.Client, query string, maxResults
289
288
return
290
289
}
291
290
292
- if flags .oFlag {
291
+ if flags .orgFlag {
293
292
groupFullPaths := make ([]string , len (groups ))
294
293
for i , group := range groups {
295
294
groupFullPaths [i ] = group .FullPath
@@ -304,7 +303,7 @@ func searchGitLabGroupsAndUsers(client *gitlab.Client, query string, maxResults
304
303
return
305
304
}
306
305
307
- if flags .uFlag {
306
+ if flags .userFlag {
308
307
userUsernames := make ([]string , len (users ))
309
308
for i , user := range users {
310
309
userUsernames [i ] = user .Username
@@ -345,7 +344,7 @@ func createGitLabClient() (*gitlab.Client, error) {
345
344
}
346
345
347
346
func printResults (header string , results []string ) {
348
- if flags .sFlag {
347
+ if flags .simpleFlag {
349
348
for _ , result := range results {
350
349
fmt .Println (result )
351
350
}
0 commit comments