1 package main |
1 package main |
2 |
2 |
3 import ( |
3 import ( |
4 "github.com/urfave/cli" |
4 "github.com/urfave/cli" |
5 "net/url" |
5 "net/url" |
6 "strings" |
6 "strings" |
7 ) |
7 ) |
8 |
8 |
9 // ByAlphabet is for sorting |
9 // ByAlphabet is for sorting |
10 type ByAlphabet []cli.Command |
10 type ByAlphabet []cli.Command |
11 |
11 |
12 func (a ByAlphabet) Len() int { return len(a) } |
12 func (a ByAlphabet) Len() int { return len(a) } |
13 func (a ByAlphabet) Swap(i, j int) { a[i], a[j] = a[j], a[i] } |
13 func (a ByAlphabet) Swap(i, j int) { a[i], a[j] = a[j], a[i] } |
14 func (a ByAlphabet) Less(i, j int) bool { return a[i].Name < a[j].Name } |
14 func (a ByAlphabet) Less(i, j int) bool { return a[i].Name < a[j].Name } |
15 |
15 |
16 func filterURL(in string) (out string) { |
16 func filterURL(in string) (out string) { |
17 uri, err := url.Parse(in) |
17 uri, err := url.Parse(in) |
18 if err != nil { |
18 if err != nil { |
19 out = "" |
19 out = "" |
20 } else { |
20 } else { |
21 uri := url.URL{Scheme: uri.Scheme, Host: uri.Host} |
21 uri := url.URL{Scheme: uri.Scheme, Host: uri.Host} |
22 out = uri.String() |
22 out = uri.String() |
23 } |
23 } |
24 return |
24 return |
25 } |
25 } |
26 |
26 |
27 func basename(in string) (out string) { |
27 func basename(in string) (out string) { |
28 uri, err := url.Parse(in) |
28 uri, err := url.Parse(in) |
29 if err != nil { |
29 if err != nil { |
30 out = "" |
30 out = "" |
31 } else { |
31 } else { |
32 // Remove the :NN part of present |
32 // Remove the :NN part of present |
33 out = strings.Split(uri.Host, ":")[0] |
33 out = strings.Split(uri.Host, ":")[0] |
34 } |
34 } |
35 return |
35 return |
36 } |
36 } |