bukin 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +0 -1
- data/Gemfile +2 -0
- data/README.md +3 -3
- data/bukin.gemspec +2 -2
- data/docs/process.md +24 -0
- data/lib/bukin.rb +54 -2
- data/lib/bukin/bukfile.rb +46 -48
- data/lib/bukin/bukget.rb +63 -0
- data/lib/bukin/bukkit_dl.rb +45 -0
- data/lib/bukin/cli.rb +109 -83
- data/lib/bukin/download.rb +16 -0
- data/lib/bukin/file_match.rb +33 -0
- data/lib/bukin/installer.rb +65 -68
- data/lib/bukin/jenkins.rb +47 -0
- data/lib/bukin/lockfile.rb +23 -21
- data/lib/bukin/resource.rb +17 -0
- data/lib/bukin/version.rb +1 -1
- data/spec/bukfile_spec.rb +0 -16
- data/spec/bukget_spec.rb +56 -0
- data/spec/bukkit_dl_spec.rb +50 -0
- data/spec/cassettes/Bukin_Bukget/chooses_the_version_with_a_jar_file_when_there_are_multiple_versions.yml +61 -0
- data/spec/cassettes/Bukin_Bukget/installs_a_specific_version_of_a_resource.yml +61 -0
- data/spec/cassettes/Bukin_Bukget/installs_the_latest_version_of_a_resource.yml +49 -0
- data/spec/cassettes/Bukin_Bukget/returns_an_error_when_asked_for_a_file_that_does_not_exist.yml +61 -0
- data/spec/cassettes/Bukin_Bukget/returns_an_error_when_asked_for_a_resource_that_doese_not_exist.yml +43 -0
- data/spec/cassettes/Bukin_Bukget/returns_an_error_when_asked_for_a_version_that_doese_not_exist.yml +435 -0
- data/spec/cassettes/Bukin_BukkitDl/chooses_the_first_file_when_there_are_multiple_files.yml +59 -0
- data/spec/cassettes/Bukin_BukkitDl/installs_a_specific_version_of_a_resource.yml +59 -0
- data/spec/cassettes/Bukin_BukkitDl/installs_the_latest_version_of_a_resource.yml +59 -0
- data/spec/cassettes/Bukin_BukkitDl/returns_an_error_when_asked_for_a_file_that_does_not_exist.yml +59 -0
- data/spec/cassettes/Bukin_BukkitDl/returns_an_error_when_asked_for_a_resource_that_doese_not_exist.yml +128 -0
- data/spec/cassettes/Bukin_BukkitDl/returns_an_error_when_asked_for_a_version_that_doese_not_exist.yml +128 -0
- data/spec/cassettes/Bukin_Jenkins/chooses_the_first_file_when_there_are_multiple_files.yml +50 -0
- data/spec/cassettes/Bukin_Jenkins/installs_a_specific_version_of_a_resource.yml +50 -0
- data/spec/cassettes/Bukin_Jenkins/installs_the_latest_version_of_a_resource.yml +49 -0
- data/spec/cassettes/Bukin_Jenkins/returns_an_error_when_asked_for_a_file_that_does_not_exist.yml +50 -0
- data/spec/cassettes/Bukin_Jenkins/returns_an_error_when_asked_for_a_resource_that_doese_not_exist.yml +59 -0
- data/spec/cassettes/Bukin_Jenkins/returns_an_error_when_asked_for_a_version_that_does_not_exist.yml +59 -0
- data/spec/file_match_spec.rb +39 -0
- data/spec/installer_spec.rb +0 -1
- data/spec/jenkins_spec.rb +61 -0
- data/spec/lockfile_spec.rb +8 -8
- data/spec/spec_helper.rb +10 -0
- metadata +57 -26
- data/lib/bukin/exceptions.rb +0 -5
- data/lib/bukin/friendly_errors.rb +0 -22
- data/lib/bukin/providers/bukget.rb +0 -54
- data/lib/bukin/providers/bukkit_dl.rb +0 -29
- data/lib/bukin/providers/jenkins.rb +0 -40
data/spec/spec_helper.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'coveralls'
|
2
|
+
require 'vcr'
|
2
3
|
|
3
4
|
# This file was generated by the `rspec --init` command. Conventionally, all
|
4
5
|
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
@@ -19,4 +20,13 @@ RSpec.configure do |config|
|
|
19
20
|
|
20
21
|
# Enable Coveralls: https://coveralls.io
|
21
22
|
Coveralls.wear!
|
23
|
+
|
24
|
+
# Enable VCR for mocking web requests
|
25
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
26
|
+
end
|
27
|
+
|
28
|
+
VCR.configure do |vcr|
|
29
|
+
vcr.cassette_library_dir = 'spec/cassettes'
|
30
|
+
vcr.hook_into :webmock
|
31
|
+
vcr.configure_rspec_metadata!
|
22
32
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bukin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-01-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
@@ -27,22 +27,6 @@ dependencies:
|
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 0.18.1
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: json
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ~>
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: 1.8.0
|
38
|
-
type: :runtime
|
39
|
-
prerelease: false
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: 1.8.0
|
46
30
|
- !ruby/object:Gem::Dependency
|
47
31
|
name: rubyzip
|
48
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -50,7 +34,7 @@ dependencies:
|
|
50
34
|
requirements:
|
51
35
|
- - ~>
|
52
36
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
37
|
+
version: 1.1.0
|
54
38
|
type: :runtime
|
55
39
|
prerelease: false
|
56
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -58,7 +42,7 @@ dependencies:
|
|
58
42
|
requirements:
|
59
43
|
- - ~>
|
60
44
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
45
|
+
version: 1.1.0
|
62
46
|
description: Plugin and server package manager for Minecraft
|
63
47
|
email:
|
64
48
|
- contact@nullreff.net
|
@@ -76,19 +60,43 @@ files:
|
|
76
60
|
- Rakefile
|
77
61
|
- bin/bukin
|
78
62
|
- bukin.gemspec
|
63
|
+
- docs/process.md
|
79
64
|
- lib/bukin.rb
|
80
65
|
- lib/bukin/bukfile.rb
|
66
|
+
- lib/bukin/bukget.rb
|
67
|
+
- lib/bukin/bukkit_dl.rb
|
81
68
|
- lib/bukin/cli.rb
|
82
|
-
- lib/bukin/
|
83
|
-
- lib/bukin/
|
69
|
+
- lib/bukin/download.rb
|
70
|
+
- lib/bukin/file_match.rb
|
84
71
|
- lib/bukin/installer.rb
|
72
|
+
- lib/bukin/jenkins.rb
|
85
73
|
- lib/bukin/lockfile.rb
|
86
|
-
- lib/bukin/
|
87
|
-
- lib/bukin/providers/bukkit_dl.rb
|
88
|
-
- lib/bukin/providers/jenkins.rb
|
74
|
+
- lib/bukin/resource.rb
|
89
75
|
- lib/bukin/version.rb
|
90
76
|
- spec/bukfile_spec.rb
|
77
|
+
- spec/bukget_spec.rb
|
78
|
+
- spec/bukkit_dl_spec.rb
|
79
|
+
- spec/cassettes/Bukin_Bukget/chooses_the_version_with_a_jar_file_when_there_are_multiple_versions.yml
|
80
|
+
- spec/cassettes/Bukin_Bukget/installs_a_specific_version_of_a_resource.yml
|
81
|
+
- spec/cassettes/Bukin_Bukget/installs_the_latest_version_of_a_resource.yml
|
82
|
+
- spec/cassettes/Bukin_Bukget/returns_an_error_when_asked_for_a_file_that_does_not_exist.yml
|
83
|
+
- spec/cassettes/Bukin_Bukget/returns_an_error_when_asked_for_a_resource_that_doese_not_exist.yml
|
84
|
+
- spec/cassettes/Bukin_Bukget/returns_an_error_when_asked_for_a_version_that_doese_not_exist.yml
|
85
|
+
- spec/cassettes/Bukin_BukkitDl/chooses_the_first_file_when_there_are_multiple_files.yml
|
86
|
+
- spec/cassettes/Bukin_BukkitDl/installs_a_specific_version_of_a_resource.yml
|
87
|
+
- spec/cassettes/Bukin_BukkitDl/installs_the_latest_version_of_a_resource.yml
|
88
|
+
- spec/cassettes/Bukin_BukkitDl/returns_an_error_when_asked_for_a_file_that_does_not_exist.yml
|
89
|
+
- spec/cassettes/Bukin_BukkitDl/returns_an_error_when_asked_for_a_resource_that_doese_not_exist.yml
|
90
|
+
- spec/cassettes/Bukin_BukkitDl/returns_an_error_when_asked_for_a_version_that_doese_not_exist.yml
|
91
|
+
- spec/cassettes/Bukin_Jenkins/chooses_the_first_file_when_there_are_multiple_files.yml
|
92
|
+
- spec/cassettes/Bukin_Jenkins/installs_a_specific_version_of_a_resource.yml
|
93
|
+
- spec/cassettes/Bukin_Jenkins/installs_the_latest_version_of_a_resource.yml
|
94
|
+
- spec/cassettes/Bukin_Jenkins/returns_an_error_when_asked_for_a_file_that_does_not_exist.yml
|
95
|
+
- spec/cassettes/Bukin_Jenkins/returns_an_error_when_asked_for_a_resource_that_doese_not_exist.yml
|
96
|
+
- spec/cassettes/Bukin_Jenkins/returns_an_error_when_asked_for_a_version_that_does_not_exist.yml
|
97
|
+
- spec/file_match_spec.rb
|
91
98
|
- spec/installer_spec.rb
|
99
|
+
- spec/jenkins_spec.rb
|
92
100
|
- spec/lockfile_spec.rb
|
93
101
|
- spec/spec_helper.rb
|
94
102
|
homepage: http://github.com/Nullreff/bukin
|
@@ -102,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
102
110
|
requirements:
|
103
111
|
- - ! '>='
|
104
112
|
- !ruby/object:Gem::Version
|
105
|
-
version:
|
113
|
+
version: 1.9.1
|
106
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
115
|
none: false
|
108
116
|
requirements:
|
@@ -117,6 +125,29 @@ specification_version: 3
|
|
117
125
|
summary: Plugin and server package manager for Minecraft
|
118
126
|
test_files:
|
119
127
|
- spec/bukfile_spec.rb
|
128
|
+
- spec/bukget_spec.rb
|
129
|
+
- spec/bukkit_dl_spec.rb
|
130
|
+
- spec/cassettes/Bukin_Bukget/chooses_the_version_with_a_jar_file_when_there_are_multiple_versions.yml
|
131
|
+
- spec/cassettes/Bukin_Bukget/installs_a_specific_version_of_a_resource.yml
|
132
|
+
- spec/cassettes/Bukin_Bukget/installs_the_latest_version_of_a_resource.yml
|
133
|
+
- spec/cassettes/Bukin_Bukget/returns_an_error_when_asked_for_a_file_that_does_not_exist.yml
|
134
|
+
- spec/cassettes/Bukin_Bukget/returns_an_error_when_asked_for_a_resource_that_doese_not_exist.yml
|
135
|
+
- spec/cassettes/Bukin_Bukget/returns_an_error_when_asked_for_a_version_that_doese_not_exist.yml
|
136
|
+
- spec/cassettes/Bukin_BukkitDl/chooses_the_first_file_when_there_are_multiple_files.yml
|
137
|
+
- spec/cassettes/Bukin_BukkitDl/installs_a_specific_version_of_a_resource.yml
|
138
|
+
- spec/cassettes/Bukin_BukkitDl/installs_the_latest_version_of_a_resource.yml
|
139
|
+
- spec/cassettes/Bukin_BukkitDl/returns_an_error_when_asked_for_a_file_that_does_not_exist.yml
|
140
|
+
- spec/cassettes/Bukin_BukkitDl/returns_an_error_when_asked_for_a_resource_that_doese_not_exist.yml
|
141
|
+
- spec/cassettes/Bukin_BukkitDl/returns_an_error_when_asked_for_a_version_that_doese_not_exist.yml
|
142
|
+
- spec/cassettes/Bukin_Jenkins/chooses_the_first_file_when_there_are_multiple_files.yml
|
143
|
+
- spec/cassettes/Bukin_Jenkins/installs_a_specific_version_of_a_resource.yml
|
144
|
+
- spec/cassettes/Bukin_Jenkins/installs_the_latest_version_of_a_resource.yml
|
145
|
+
- spec/cassettes/Bukin_Jenkins/returns_an_error_when_asked_for_a_file_that_does_not_exist.yml
|
146
|
+
- spec/cassettes/Bukin_Jenkins/returns_an_error_when_asked_for_a_resource_that_doese_not_exist.yml
|
147
|
+
- spec/cassettes/Bukin_Jenkins/returns_an_error_when_asked_for_a_version_that_does_not_exist.yml
|
148
|
+
- spec/file_match_spec.rb
|
120
149
|
- spec/installer_spec.rb
|
150
|
+
- spec/jenkins_spec.rb
|
121
151
|
- spec/lockfile_spec.rb
|
122
152
|
- spec/spec_helper.rb
|
153
|
+
has_rdoc:
|
data/lib/bukin/exceptions.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'socket'
|
2
|
-
|
3
|
-
module Bukin
|
4
|
-
def self.with_friendly_errors
|
5
|
-
yield
|
6
|
-
rescue Bukin::BukinError => error
|
7
|
-
abort error.message
|
8
|
-
rescue SocketError => error
|
9
|
-
abort "#{error.message}\nCheck that you have a stable connection and the service is online"
|
10
|
-
rescue Errno::ENOENT => error
|
11
|
-
abort error.message
|
12
|
-
rescue Interrupt
|
13
|
-
abort ''
|
14
|
-
rescue Exception => error
|
15
|
-
puts %Q(
|
16
|
-
Oops, Bukin just crashed. Please report this at http://bit.ly/bukin-issues
|
17
|
-
Be sure to include as much information as possible such as your Bukfile,
|
18
|
-
Bukfile.lock and the stack trace below.
|
19
|
-
)
|
20
|
-
raise error
|
21
|
-
end
|
22
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
require 'json'
|
2
|
-
require 'cgi'
|
3
|
-
|
4
|
-
# BukGet api
|
5
|
-
# Docs: http://bukget.org/pages/docs/API3.html
|
6
|
-
class Bukin::Bukget
|
7
|
-
DEFAULT_URL = 'http://api.bukget.org'
|
8
|
-
attr_reader :data
|
9
|
-
|
10
|
-
def initialize(data)
|
11
|
-
@data = data
|
12
|
-
end
|
13
|
-
|
14
|
-
def resolve_info
|
15
|
-
info = JSON.parse(open(url).read)
|
16
|
-
versions = info['versions']
|
17
|
-
if versions.empty?
|
18
|
-
raise Bukin::InstallError, "The plugin #{name} (#{version}) has no available downloads from BukGet."
|
19
|
-
end
|
20
|
-
|
21
|
-
# Some people release two of the same version on bukkit
|
22
|
-
# dev, one as a zip package and one with the jar only.
|
23
|
-
# This downloads the jar only version by default.
|
24
|
-
version_data = versions.find {|version_data| jar_extension?(version_data)} || versions.first
|
25
|
-
data[:version] = version_data['version']
|
26
|
-
data[:download] = version_data['download']
|
27
|
-
data
|
28
|
-
end
|
29
|
-
|
30
|
-
def url
|
31
|
-
"#{data[:bukget]}/3/plugins/#{CGI.escape(server)}/#{CGI.escape(name)}/#{CGI.escape(version)}"
|
32
|
-
end
|
33
|
-
|
34
|
-
def name
|
35
|
-
data[:name]
|
36
|
-
end
|
37
|
-
|
38
|
-
def version
|
39
|
-
data[:version] || 'latest'
|
40
|
-
end
|
41
|
-
|
42
|
-
def server
|
43
|
-
if data[:server].nil? || data[:server] == 'craftbukkit'
|
44
|
-
'bukkit'
|
45
|
-
else
|
46
|
-
data[:server]
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
private
|
51
|
-
def jar_extension?(version_data)
|
52
|
-
File.extname(version_data['filename']) == '.jar'
|
53
|
-
end
|
54
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
require 'json'
|
2
|
-
|
3
|
-
# Bukkit download api
|
4
|
-
# Docs: http://dl.bukkit.org/about/
|
5
|
-
class Bukin::BukkitDl
|
6
|
-
DEFAULT_URL = 'http://dl.bukkit.org'
|
7
|
-
attr_reader :data
|
8
|
-
|
9
|
-
def initialize(data)
|
10
|
-
@data = data
|
11
|
-
end
|
12
|
-
|
13
|
-
def resolve_info
|
14
|
-
name = data[:name]
|
15
|
-
version = data[:version] || 'latest-rb'
|
16
|
-
|
17
|
-
url = "#{api_url}/projects/#{name}/view/#{version}/"
|
18
|
-
info = JSON.parse(open(url).read)
|
19
|
-
|
20
|
-
data[:version] = "build-#{info['build_number']}"
|
21
|
-
data[:download] = data[:bukkit_dl] + info['file']['url']
|
22
|
-
data
|
23
|
-
end
|
24
|
-
|
25
|
-
private
|
26
|
-
def api_url
|
27
|
-
"#{data[:bukkit_dl]}/api/1.0/downloads"
|
28
|
-
end
|
29
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'json'
|
2
|
-
|
3
|
-
# Api for downloading from jenkins
|
4
|
-
class Bukin::Jenkins
|
5
|
-
attr_reader :data
|
6
|
-
|
7
|
-
def initialize(data)
|
8
|
-
@data = data
|
9
|
-
end
|
10
|
-
|
11
|
-
def resolve_info
|
12
|
-
name = data[:name]
|
13
|
-
version = data[:version] || 'lastSuccessfulBuild'
|
14
|
-
|
15
|
-
unless /^build-(.*)$/.match(version)
|
16
|
-
raise Bukin::InstallError, "The plugin #{name} (#{version}) has an improper version format for downloading from Jenkins. It should be in the form of 'build-<number>'"
|
17
|
-
end
|
18
|
-
|
19
|
-
base_path = "#{data[:jenkins]}/job/#{name}/#{$1}"
|
20
|
-
url = "#{base_path}/api/json"
|
21
|
-
info = JSON.parse(open(url).read)
|
22
|
-
|
23
|
-
download_info = find_file(info['artifacts'], data[:file])
|
24
|
-
data[:version] = version
|
25
|
-
data[:download] = "#{base_path}/artifact/#{download_info['relativePath']}"
|
26
|
-
data
|
27
|
-
end
|
28
|
-
|
29
|
-
def find_file(artifacts, file_name)
|
30
|
-
artifacts.find do |artifact|
|
31
|
-
if file_name.is_a?(Regexp)
|
32
|
-
file_name =~ artifact['fileName']
|
33
|
-
elsif file_name.is_a?(String)
|
34
|
-
file_name == artifact['fileName']
|
35
|
-
else
|
36
|
-
true
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|