spigoter 0.2.0 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|