alfi 0.4.4 → 0.4.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -1
- data/README.md +15 -0
- data/lib/alfi/cli.rb +22 -1
- data/lib/alfi/providers/base.rb +2 -1
- data/lib/alfi/providers/bintray.rb +17 -13
- data/lib/alfi/providers/maven.rb +20 -18
- data/lib/alfi/providers/offline.rb +1 -1
- data/lib/alfi/search.rb +7 -3
- data/lib/alfi/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d07d7fb4c9aeba401ae4ef9b068de84c2eb8732
|
4
|
+
data.tar.gz: 41b540df33caf99a587eb15978f807d99a789b50
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 777dde62f366a2f3336c5e718668c7fa57d0437264a83b47a1a5ea938c2d6ebe561cf079ecde1f331844aff9c5732bc3ad42a30bc955320bb4cef10a957afb35
|
7
|
+
data.tar.gz: 4eadc87f42ba066aff43a0eafa1cd27b73d8a6e1831a5ef2854a72336337c3059298d44dce1eb27f1985075a2ec25ecf0ebd4c6c6c210d7a3284b727744d6aef
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -17,6 +17,21 @@ alfi picasso
|
|
17
17
|
<img src="https://raw.github.com/cesarferreira/alfi/master/extras/images/terminal01.gif" />
|
18
18
|
</p>
|
19
19
|
|
20
|
+
|
21
|
+
Search for `something` by repository
|
22
|
+
|
23
|
+
```bash
|
24
|
+
alfi picasso --repository maven
|
25
|
+
```
|
26
|
+
|
27
|
+
This will search picasso only on maven, you can also define multiple repositories like:
|
28
|
+
|
29
|
+
```bash
|
30
|
+
alfi picasso -r mavenCentral -r jCenter
|
31
|
+
```
|
32
|
+
|
33
|
+
This will search picasso on mavenCentral and jCenter
|
34
|
+
|
20
35
|
**Final step:** Copy the library you want to your `build.gradle` and sync it
|
21
36
|
|
22
37
|
## Installation
|
data/lib/alfi/cli.rb
CHANGED
@@ -10,6 +10,7 @@ class Alfi::Cli
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def call(arguments)
|
13
|
+
@search_type = []
|
13
14
|
create_options_parser
|
14
15
|
search_param = @all_defined_arguments.include?(arguments.first) ? nil : arguments.shift
|
15
16
|
@bintray_username = nil
|
@@ -20,7 +21,7 @@ class Alfi::Cli
|
|
20
21
|
|
21
22
|
exit_with("Missing query parameter\n".red + @opt_parser.help) unless search_param
|
22
23
|
|
23
|
-
Alfi::Search.new.call(search_param)
|
24
|
+
Alfi::Search.new.call(search_param, @search_type)
|
24
25
|
end
|
25
26
|
|
26
27
|
def create_options_parser
|
@@ -29,6 +30,8 @@ class Alfi::Cli
|
|
29
30
|
'--user',
|
30
31
|
'-k',
|
31
32
|
'--key',
|
33
|
+
'-r',
|
34
|
+
'--repository',
|
32
35
|
'-h',
|
33
36
|
'--help',
|
34
37
|
'-v',
|
@@ -53,6 +56,24 @@ class Alfi::Cli
|
|
53
56
|
puts Alfi::VERSION
|
54
57
|
exit
|
55
58
|
end
|
59
|
+
opts.on('-r REPOSITORY_NAME', '--repository REPOSITORY_NAME', 'If should search on maven, jCenter or mavenCentral ') do |repository_name|
|
60
|
+
if repository_name != "maven" && repository_name != "jcenter" && repository_name != "mavencentral"
|
61
|
+
puts "Please choose one of the following maven, jcenter or mavencentral"
|
62
|
+
exit
|
63
|
+
end
|
64
|
+
|
65
|
+
if repository_name.downcase == "maven"
|
66
|
+
@search_type << "m"
|
67
|
+
end
|
68
|
+
|
69
|
+
if repository_name.downcase == "mavencentral"
|
70
|
+
@search_type << "maven"
|
71
|
+
end
|
72
|
+
|
73
|
+
if repository_name.downcase == "jcenter"
|
74
|
+
@search_type << "jcenter"
|
75
|
+
end
|
76
|
+
end
|
56
77
|
|
57
78
|
opts.separator "\nNow you are using alfi credentials for Bintray".yellow
|
58
79
|
opts.separator "But you also could enter your authentication data if you want. "\
|
data/lib/alfi/providers/base.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
class Alfi::Providers::Base
|
2
|
-
def initialize(query)
|
2
|
+
def initialize(query, search_type)
|
3
3
|
@query = query
|
4
4
|
@uri = URI.parse(query_url(query))
|
5
5
|
@http = Net::HTTP.new(@uri.host, @uri.port)
|
6
6
|
@request = Net::HTTP::Get.new(@uri.request_uri)
|
7
|
+
@search_type = search_type
|
7
8
|
request_extensions if self.class.method_defined?(:request_extensions)
|
8
9
|
end
|
9
10
|
|
@@ -36,22 +36,26 @@ class Alfi::Providers::Bintray < Alfi::Providers::Base
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def call
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
39
|
+
if @search_type.empty? || @search_type.include?('jcenter') || @search_type.include?('maven')
|
40
|
+
begin
|
41
|
+
response = @http.request(@request)
|
42
|
+
rescue SocketError
|
43
|
+
puts "Internet Connection not available".red
|
44
|
+
exit 1
|
45
|
+
end
|
45
46
|
|
46
|
-
|
47
|
-
|
47
|
+
return if response.code != '200'
|
48
|
+
response_json = JSON.parse(response.body || '{}')
|
48
49
|
|
49
|
-
|
50
|
+
add_to_list " # #{'-'*20}Bintray#{'-'*20}" if response_json.size > 0
|
50
51
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
52
|
+
response_json.group_by { |package| package['repo'] }.each do |provider, repositories|
|
53
|
+
if @search_type.empty? || @search_type.include?(provider)
|
54
|
+
add_to_list " # #{PROVIDERS_TEXTS[provider]}"
|
55
|
+
repositories.each do |repo|
|
56
|
+
add_repo_to_list "#{repo['system_ids'][0]}:#{repo['latest_version']}" if repo['system_ids'].size > 0
|
57
|
+
end
|
58
|
+
end
|
55
59
|
end
|
56
60
|
end
|
57
61
|
end
|
data/lib/alfi/providers/maven.rb
CHANGED
@@ -4,29 +4,31 @@ class Alfi::Providers::Maven < Alfi::Providers::Base
|
|
4
4
|
end
|
5
5
|
|
6
6
|
def call
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
if @search_type.empty? || @search_type.include?('m')
|
8
|
+
begin
|
9
|
+
response = @http.request(@request)
|
10
|
+
rescue SocketError
|
11
|
+
puts "Internet Connection not available".red
|
12
|
+
exit 1
|
13
|
+
end
|
13
14
|
|
14
|
-
|
15
|
-
|
15
|
+
if response.code == '200'
|
16
|
+
result = JSON.parse(response.body)
|
16
17
|
|
17
|
-
|
18
|
+
num_results = result['response']['numFound']
|
18
19
|
|
19
|
-
|
20
|
-
|
21
|
-
|
20
|
+
if num_results == 0
|
21
|
+
suggestions = (result['spellcheck']['suggestions'].last || {})['suggestion']
|
22
|
+
add_suggestions(suggestions) if suggestions
|
23
|
+
else
|
24
|
+
add_to_list " # #{'-'*20}Maven.org#{'-'*20}"
|
25
|
+
add_to_list ' # mavenCentral()'
|
26
|
+
end
|
27
|
+
result['response']['docs'].each { |doc| add_repo_to_list "#{doc['id']}:#{doc['latestVersion']}" }
|
22
28
|
else
|
23
|
-
|
24
|
-
|
29
|
+
puts "Error: #{response.code}\n#{response}".red
|
30
|
+
exit 1
|
25
31
|
end
|
26
|
-
result['response']['docs'].each { |doc| add_repo_to_list "#{doc['id']}:#{doc['latestVersion']}" }
|
27
|
-
else
|
28
|
-
puts "Error: #{response.code}\n#{response}".red
|
29
|
-
exit 1
|
30
32
|
end
|
31
33
|
end
|
32
34
|
end
|
data/lib/alfi/search.rb
CHANGED
@@ -9,14 +9,14 @@ class Alfi::Search
|
|
9
9
|
exit 1
|
10
10
|
end
|
11
11
|
|
12
|
-
def call(search_param)
|
12
|
+
def call(search_param, search_type)
|
13
13
|
return puts 'The search needs 3+ characters'.red if search_param.size < 3
|
14
14
|
puts "Searching...\n"
|
15
15
|
|
16
|
-
Alfi::Providers.all.each { |cc| cc.new(search_param).call }
|
16
|
+
Alfi::Providers.all.each { |cc| cc.new(search_param, search_type).call }
|
17
17
|
|
18
18
|
exit_with('No results'.red) if $result_list.empty? && $suggestions.empty?
|
19
|
-
num_results =
|
19
|
+
num_results = total_results_count
|
20
20
|
|
21
21
|
if num_results > 0
|
22
22
|
puts "\ndependencies {\n"
|
@@ -29,4 +29,8 @@ class Alfi::Search
|
|
29
29
|
return if $suggestions.empty?
|
30
30
|
puts "Did you mean: #{$suggestions.join(', ').yellow}"
|
31
31
|
end
|
32
|
+
|
33
|
+
def total_results_count
|
34
|
+
return $result_list.count { |r| r.strip[0] != '#' }
|
35
|
+
end
|
32
36
|
end
|
data/lib/alfi/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alfi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cesar ferreira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|