spigoter 0.2.0 → 0.2.2
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.
- checksums.yaml +4 -4
- data/README.md +62 -4
- data/exe/spigoter +3 -1
- data/lib/spigoter/cli/cli.rb +6 -0
- data/lib/spigoter/cli/cli_update.rb +10 -11
- data/lib/spigoter/plugins.rb +3 -3
- data/lib/spigoter/version.rb +1 -1
- data/lib/spigoter/webapi/curse.rb +0 -6
- data/lib/spigoter/webapi/devbukkit.rb +2 -11
- data/spigoter.gemspec +0 -1
- metadata +1 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 79a9acc769a4ed28bb5ba1c034afe8b57264bbee
|
4
|
+
data.tar.gz: 6c13746dc68d3eb762a3282dede574252dda4488
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc161d28544f41888d47aa367ee4cfbe08570bf0ed736c380bf15fb16e585bb96ef498cb5da6686c874e67f6518a3fdd106917bc809c6277daf116e778a7c796
|
7
|
+
data.tar.gz: e6d952eaace7b1af4a0c45edcea2ac3f835a901072dd13143329f12787063a5ea89ca66b61b7dcb8876fa1ba382cb67012fef041e21c4d6cbe303230cb965a8d
|
data/README.md
CHANGED
@@ -11,17 +11,76 @@ Spigoter is a Ruby gem that gives you many tools make your server keepup easier.
|
|
11
11
|
gem install spigoter
|
12
12
|
```
|
13
13
|
|
14
|
-
##
|
14
|
+
## Features
|
15
15
|
|
16
16
|
### Run the server
|
17
|
-
spigoter
|
17
|
+
spigoter [--javaparam="-Xms1024M -Xmx4096M ..."]
|
18
18
|
|
19
19
|
### Update plugins
|
20
20
|
spigoter {-u|--update} {all|plugin1,plugin2,...}
|
21
21
|
|
22
|
-
###
|
22
|
+
### Usage
|
23
|
+
You have to drop a `plugin.json` file in the server root directory. There will be saved some relevant information of plugins, as well as some customization.
|
24
|
+
|
25
|
+
Example:
|
26
|
+
|
27
|
+
```json
|
28
|
+
[
|
29
|
+
{
|
30
|
+
"name": "Authme",
|
31
|
+
"url": "http://mods.curse.com/bukkit-plugins/minecraft/authme-reloaded",
|
32
|
+
"type": "curse",
|
33
|
+
"last_update": "31-3-2016 - 0:40"
|
34
|
+
},
|
35
|
+
{
|
36
|
+
"name": "BossShop",
|
37
|
+
"url": "http://mods.curse.com/bukkit-plugins/minecraft/bossshop",
|
38
|
+
"type": "curse",
|
39
|
+
"last_update": "31-3-2016 - 0:40"
|
40
|
+
},
|
41
|
+
{
|
42
|
+
"name": "ChestShop",
|
43
|
+
"url": "https://www.spigotmc.org/resources/1-9-chestshop.19511/",
|
44
|
+
"type": "spigotmc",
|
45
|
+
"last_update": "31-3-2016 - 0:40"
|
46
|
+
},
|
47
|
+
{
|
48
|
+
"name": "ChopTree",
|
49
|
+
"url": "https://www.spigotmc.org/resources/choptree.2046/",
|
50
|
+
"type": "spigotmc",
|
51
|
+
"last_update": "31-3-2016 - 0:40"
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"name": "ClickSort",
|
55
|
+
"url": "http://mods.curse.com/bukkit-plugins/minecraft/clicksort",
|
56
|
+
"type": "curse",
|
57
|
+
"last_update": "31-3-2016 - 0:40"
|
58
|
+
},
|
59
|
+
{
|
60
|
+
"name": "Dynmap",
|
61
|
+
"url": "http://dev.bukkit.org/media/files/911/888/dynmap-2.3-alpha-1.jar",
|
62
|
+
"type": "direct",
|
63
|
+
"keep_eye_on": "http://dev.bukkit.org/bukkit-plugins/dynmap/files/",
|
64
|
+
"last_update": "31-3-2016 - 0:40"
|
65
|
+
}
|
66
|
+
]
|
67
|
+
```
|
68
|
+
|
69
|
+
I'm trying to switch to YAML.
|
70
|
+
#### Currently suported plugin hosted sites
|
71
|
+
* [Curse](http://mods.curse.com/bukkit-plugins/minecraft)
|
72
|
+
* [BukkitDev](http://dev.bukkit.org/)
|
73
|
+
|
74
|
+
#### Planned
|
75
|
+
* [Spigot](https://www.spigotmc.org/)
|
76
|
+
* Direct download
|
77
|
+
* Custom download via piping (first download, second unrar, then extract X file, ...)
|
78
|
+
|
79
|
+
### Compile Spigot and set version
|
23
80
|
spigoter {-c|--compile} [lastest|1.9|1.8|...]
|
24
81
|
|
82
|
+
This command excecute the `buildtools .jar` in a `build`directory in the root server folder. Then, it'll replace the old version with the new one.
|
83
|
+
|
25
84
|
## Development
|
26
85
|
|
27
86
|
After checking out the repo, run `bundle install` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -36,4 +95,3 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/Daniel
|
|
36
95
|
## License
|
37
96
|
|
38
97
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
39
|
-
|
data/exe/spigoter
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
require 'spigoter'
|
4
4
|
require 'trollop'
|
5
|
-
require 'json'
|
6
5
|
|
7
6
|
|
8
7
|
opts = Trollop::options do
|
8
|
+
version "Spigoter v#{Spigoter::VERSION}"
|
9
9
|
banner <<-EOS
|
10
10
|
Spigoter, a command line utity for minecraft servers.
|
11
11
|
|
@@ -16,7 +16,9 @@ EOS
|
|
16
16
|
opt :javaparm, 'Sets the java parameters', :default => '-Xms1024M -Xmx4096M -jar spigot.jar' #TODO: Poner esto aqui
|
17
17
|
opt :compile, "Compiles spigot and sets the new version"
|
18
18
|
opt :update, "Set permissons plugin"
|
19
|
+
opt :version, "Get spigoter version"
|
19
20
|
end
|
20
21
|
|
22
|
+
puts "Estas son las opciones: #{opts}"
|
21
23
|
|
22
24
|
Spigoter::CLI.main(opts)
|
data/lib/spigoter/cli/cli.rb
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
module Spigoter
|
2
2
|
module CLI
|
3
3
|
def self.update(opts)
|
4
|
-
puts opts
|
5
4
|
Log.info "Updating!"
|
6
|
-
unless File.exists?('plugins.
|
7
|
-
Log.error "plugins.
|
5
|
+
unless File.exists?('plugins.yml')
|
6
|
+
Log.error "plugins.yml doesn't exists, please, create one"
|
8
7
|
exit(1)
|
9
8
|
end
|
10
9
|
unless Dir.exists?('plugins')
|
@@ -12,17 +11,17 @@ module Spigoter
|
|
12
11
|
exit(1)
|
13
12
|
end
|
14
13
|
|
15
|
-
file = File.read(
|
16
|
-
plugins =
|
17
|
-
plugins.each do |
|
18
|
-
Log.info "Getting plugin #{plugin_data['name']}"
|
14
|
+
file = File.read('plugins.yml')
|
15
|
+
plugins = YAML.load(file)
|
16
|
+
plugins.each do |name, data|
|
19
17
|
begin
|
20
|
-
|
21
|
-
|
18
|
+
Log.info "Starting to download #{name}"
|
19
|
+
hash = Plugins.get_plugin(name, data)
|
20
|
+
plugin_file = File.open("plugins/#{name}.jar", 'wb')
|
22
21
|
plugin_file.write(hash[:file])
|
23
|
-
Log.info "#{
|
22
|
+
Log.info "#{name} was downloaded correctly"
|
24
23
|
rescue Exception => e
|
25
|
-
Log.error "Unkown source #{
|
24
|
+
Log.error "Unkown source #{data['type']}"
|
26
25
|
end
|
27
26
|
end
|
28
27
|
end
|
data/lib/spigoter/plugins.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
module Spigoter
|
2
2
|
module Plugins
|
3
|
-
def self.get_plugin(data)
|
3
|
+
def self.get_plugin(name, data)
|
4
4
|
case data['type']
|
5
5
|
when 'curse'
|
6
6
|
f = Spigoter::PluginCurse.new(data['url']).download
|
7
|
-
hash = {:name => "#{
|
7
|
+
hash = {:name => "#{name}.jar", :file => f}
|
8
8
|
return hash
|
9
9
|
when 'devbukkit'
|
10
10
|
f = Spigoter::PluginBukkit.new(data['url']).download
|
11
|
-
hash = {:name => "#{
|
11
|
+
hash = {:name => "#{name}.jar", :file => f}
|
12
12
|
return hash
|
13
13
|
else
|
14
14
|
raise "Unkown source"
|
data/lib/spigoter/version.rb
CHANGED
@@ -14,7 +14,6 @@ module Spigoter
|
|
14
14
|
end
|
15
15
|
def main_page
|
16
16
|
return @main_page unless @main_page.nil?
|
17
|
-
Log.info "Downloading main page"
|
18
17
|
begin
|
19
18
|
@main_page = open(@url).read
|
20
19
|
rescue
|
@@ -24,7 +23,6 @@ module Spigoter
|
|
24
23
|
end
|
25
24
|
def download_page
|
26
25
|
return @download_page unless @download_page.nil?
|
27
|
-
Log.info "Downloading download page"
|
28
26
|
begin
|
29
27
|
@download_page = open(@url+'/download').read
|
30
28
|
rescue
|
@@ -35,23 +33,19 @@ module Spigoter
|
|
35
33
|
def download_url
|
36
34
|
return @download_url unless @download_url.nil?
|
37
35
|
download_page
|
38
|
-
Log.info "Parsing download url"
|
39
36
|
@download_url = /(?<download_url>http:\/\/addons.curse.cursecdn.com.+\.jar)/.match(@download_page)[:download_url]
|
40
37
|
end
|
41
38
|
def version
|
42
39
|
return @version unless @version.nil?
|
43
40
|
main_page
|
44
|
-
Log.info "Getting version"
|
45
41
|
@version = /Newest File: (?<version>.+)</.match(@main_page)[:version]
|
46
42
|
end
|
47
43
|
def name
|
48
44
|
return @name unless @name.nil?
|
49
|
-
Log.info "Getting name"
|
50
45
|
@name = /minecraft\/(?<name>.+)/.match(@url)[:name]
|
51
46
|
end
|
52
47
|
def download
|
53
48
|
download_url
|
54
|
-
Log.info "Downloading"
|
55
49
|
begin
|
56
50
|
file = open(@download_url).read
|
57
51
|
rescue
|
@@ -14,7 +14,6 @@ module Spigoter
|
|
14
14
|
end
|
15
15
|
def main_page
|
16
16
|
return @main_page unless @main_page.nil?
|
17
|
-
Log.info "Downloading main page"
|
18
17
|
begin
|
19
18
|
@main_page = open(@url).read
|
20
19
|
rescue
|
@@ -25,35 +24,27 @@ module Spigoter
|
|
25
24
|
def download_page
|
26
25
|
return @download_page unless @download_page.nil?
|
27
26
|
main_page
|
28
|
-
Log.info "Downloading download page"
|
29
27
|
url_download_page = @main_page.match(/<a href="(?<download_page_url>.+)">Download/)[:download_page_url]
|
30
|
-
|
31
|
-
|
32
|
-
rescue
|
33
|
-
raise "404 Error, that plugin URL doesn't exists"
|
34
|
-
end
|
28
|
+
@download_page = open("http://dev.bukkit.org/#{url_download_page}").read
|
29
|
+
# Don't need to begin-rescue, it's done by main_page
|
35
30
|
return @download_page
|
36
31
|
end
|
37
32
|
def download_url
|
38
33
|
return @download_url unless @download_url.nil?
|
39
34
|
download_page
|
40
|
-
Log.info "Parsing download url"
|
41
35
|
@download_url = /href="(?<download_url>.+)">Download/.match(@download_page)[:download_url]
|
42
36
|
end
|
43
37
|
def version
|
44
38
|
return @version unless @version.nil?
|
45
39
|
download_page
|
46
|
-
Log.info "Getting version"
|
47
40
|
@version = /3">\s*<h1>\s+(?<version>.+)\s+<\/h1>/.match(@download_page)[:version]
|
48
41
|
end
|
49
42
|
def name
|
50
43
|
return @name unless @name.nil?
|
51
|
-
Log.info "Getting name"
|
52
44
|
@name = /ins\/(?<name>[a-z\-]+)\/?/.match(@url)[:name]
|
53
45
|
end
|
54
46
|
def download
|
55
47
|
download_url
|
56
|
-
Log.info "Downloading"
|
57
48
|
begin
|
58
49
|
file = open(@download_url).read
|
59
50
|
rescue
|
data/spigoter.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spigoter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Ramos
|
@@ -136,20 +136,6 @@ dependencies:
|
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '2.1'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: json
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - "~>"
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '1.8'
|
146
|
-
type: :runtime
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - "~>"
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '1.8'
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
140
|
name: logging
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|