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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 49b16dcbd14d8a17d43a7214a5c7f4eb5ae81e82
4
- data.tar.gz: c417cd01039dc46c9ba9b0b815dd88129d67db9e
3
+ metadata.gz: 79a9acc769a4ed28bb5ba1c034afe8b57264bbee
4
+ data.tar.gz: 6c13746dc68d3eb762a3282dede574252dda4488
5
5
  SHA512:
6
- metadata.gz: 0a1fe4db30c65152ee30bb84424efa407dcfe12c848c50ac40aded0a24c51cc7a52ccdf791f1eff0c860dc4729231da71478e71647a8daea913b7cda5aa36d8d
7
- data.tar.gz: 9398c549d12ccb1dd4f2f6e3eb5b11a1a6a392d61e36b409660378d90e112e0f073225f43843dba0854458e37a49f59b31aee7361eaaa521bbd0e6d82aeb4f59
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
- ## Usage
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
- ### Compile spigot and set that version
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)
@@ -10,6 +10,12 @@ module Spigoter
10
10
  Spigoter::CLI.compile(opts)
11
11
  return
12
12
  end
13
+ if(opts[:version])
14
+ puts "Hola!"
15
+ puts Spigoter::VERSION
16
+ puts Spigoter::VERSION.class
17
+ return
18
+ end
13
19
  Spigoter::CLI.start(opts)
14
20
  end
15
21
  end
@@ -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.json')
7
- Log.error "plugins.json doesn't exists, please, create one"
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("plugins.json")
16
- plugins = JSON.parse(file)
17
- plugins.each do |plugin_data|
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
- hash = Plugins.get_plugin(plugin_data)
21
- plugin_file = File.open("plugins/#{hash[:name]}", 'wb')
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 "#{plugin_data['name']} was downloaded correctly"
22
+ Log.info "#{name} was downloaded correctly"
24
23
  rescue Exception => e
25
- Log.error "Unkown source #{plugin_data['type']}"
24
+ Log.error "Unkown source #{data['type']}"
26
25
  end
27
26
  end
28
27
  end
@@ -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 => "#{data['name']}.jar", :file => f}
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 => "#{data['name']}.jar", :file => f}
11
+ hash = {:name => "#{name}.jar", :file => f}
12
12
  return hash
13
13
  else
14
14
  raise "Unkown source"
@@ -1,3 +1,3 @@
1
1
  module Spigoter
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.2"
3
3
  end
@@ -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
- begin
31
- @download_page = open("http://dev.bukkit.org/#{url_download_page}").read
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
@@ -37,6 +37,5 @@ Gem::Specification.new do |spec|
37
37
  spec.add_development_dependency "yard", "~> 0.8"
38
38
  spec.add_development_dependency "trollop", "~> 2.1"
39
39
 
40
- spec.add_runtime_dependency "json", "~> 1.8"
41
40
  spec.add_runtime_dependency "logging", "~> 2.1"
42
41
  end
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.0
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