lumia-server 1.0.1.alpha → 1.0.2.alpha

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 150ce16d74116b85781d2715731d77c8d1e0cf1d61b1f553277a8f46dec84828
4
- data.tar.gz: 76cb6da84b4d97a3f7a932c4cd354c78d5935283bbaa2dba36cc1e925cce0a5c
3
+ metadata.gz: 22162e5f148845c889253b7afb640b59c36d4de2163d6a4fc5f05392499ba690
4
+ data.tar.gz: db89e490d7991c37dd09f8c2b72f7cb712170dbcba7764f9438a041fcf6b2577
5
5
  SHA512:
6
- metadata.gz: 3f9f8bc68cba21bcfbe11aec6e22380209b067322c3e2640e61ff2a93e1d49471b426c14b812b93f9c30f14e04aef0701886e733ab53c32329e02499de2cc8c0
7
- data.tar.gz: 0c4e49e4d5033134af01cf8e74075fcb9f2106321fd808009a6ad650eb076cfdbb9ad802c6955f45394d1bea461a004e1c26e8cb46eeaa6e2c2de45ca63999e2
6
+ metadata.gz: 9759df4c2f5bea86157efa48a821370b6ee953c647a3e7b5f7640cbc4f3a003065b41001d378b58bf00a697689c4996d6f0deb87b5df72c0de7f59e1284e25cb
7
+ data.tar.gz: c0552c83ffdfe398034ee9823446663e67f45e35a04dd43f6a572e8dd74fb55db75bf90fe2c6b57deac5229c556a2e67d3155675c02416ac80ef96b4e70caa1f
@@ -1,7 +1,9 @@
1
1
  module LumiaServer
2
2
  module CLI
3
3
 
4
- autoload :Run, 'lumia-server/command/run'
4
+ autoload :Exec, 'lumia-server/command/exec'
5
+ autoload :Start, 'lumia-server/command/start'
6
+ autoload :Build, 'lumia-server/command/build'
5
7
 
6
8
  extend self
7
9
 
@@ -0,0 +1,31 @@
1
+ require 'lumia-server/command/command'
2
+ require 'lumia-server/platform'
3
+ require 'lumia-server/server'
4
+
5
+ module LumiaServer
6
+ module CLI
7
+ class Build < Command
8
+
9
+ def run
10
+ error('server.json was not found') unless File.exist?('server.json')
11
+ @data = JSON.parse(File.read('server.json'))
12
+
13
+ server = Server.new(@data)
14
+ server.info
15
+ server.install_platform
16
+ server.install_mods
17
+ log('Server has been installed')
18
+ end
19
+
20
+ def install_mods(name)
21
+ count = 0
22
+ if @data.key?(name)
23
+ @data[name].each do |mod|
24
+ log('Installing ' + (mod.key?['name'] ? mod['name'] : 'Unknown') + '..')
25
+ end
26
+ end
27
+ count
28
+ end
29
+ end
30
+ end
31
+ end
@@ -11,6 +11,10 @@ module LumiaServer
11
11
  @options = options
12
12
  end
13
13
 
14
+ def log(message)
15
+ $stdout.puts(message)
16
+ end
17
+
14
18
  def error(message)
15
19
  $stderr.puts message
16
20
  exit 1
@@ -2,7 +2,7 @@ require 'lumia-server/command/command'
2
2
 
3
3
  module LumiaServer
4
4
  module CLI
5
- class Run < Command
5
+ class Exec < Command
6
6
 
7
7
  def run
8
8
  error('No script name provided') unless @args[0]
@@ -0,0 +1,12 @@
1
+ require 'lumia-server/command/command'
2
+
3
+ module LumiaServer
4
+ module CLI
5
+ class Start < Command
6
+
7
+ def run
8
+ Exec.new(['start'], @options).run
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,29 @@
1
+ module LumiaServer
2
+ class Platform
3
+
4
+ require 'open-uri'
5
+
6
+ attr_reader :name
7
+ attr_reader :version
8
+ attr_reader :provider
9
+
10
+ autoload :Custom, 'lumia-server/platform/custom'
11
+ autoload :Paper, 'lumia-server/platform/paper'
12
+
13
+ def self.new(data)
14
+ return super if self < Platform
15
+ const = data['id'].to_s.downcase
16
+ raise format('Unknown platform %p', data['id']) unless (const = constants.detect { |c| c.to_s.downcase == const })
17
+ platform = const_get(const).new(data)
18
+ platform
19
+ end
20
+
21
+ def initialize(data)
22
+ @data = data
23
+ @version = data['version']
24
+ @provider = data.key?('provider') ? Provider.new(@data['provider']) : nil
25
+ end
26
+
27
+ def install; end
28
+ end
29
+ end
@@ -0,0 +1,12 @@
1
+ module LumiaServer
2
+ class Platform
3
+ class Custom < Platform
4
+
5
+ def build
6
+ super
7
+ file = File.join(@data.key?('file') ? @data['file'] : 'server.jar')
8
+ IO.copy_stream(open(@data['url']), file)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,32 @@
1
+ module LumiaServer
2
+ class Platform
3
+ class Paper < Platform
4
+
5
+ VERSIONS = {
6
+ '1.12.2' => 'https://ci.destroystokyo.com/job/PaperSpigot/1288/artifact/paperclip.jar',
7
+ '1.11.2' => 'https://ci.destroystokyo.com/job/PaperSpigot/1104/artifact/paperclip.jar',
8
+ '1.10.2' => 'https://ci.destroystokyo.com/job/PaperSpigot/916/artifact/paperclip.jar',
9
+ '1.9.4' => 'https://ci.destroystokyo.com/job/PaperSpigot/773/artifact/paperclip.jar',
10
+ '1.8.8' => 'https://ci.destroystokyo.com/job/PaperSpigot/443/artifact/paperclip.jar'
11
+ }.freeze
12
+
13
+ def initialize(data)
14
+ super
15
+ @name = 'Paper'
16
+ end
17
+
18
+ def install
19
+ if provider.nil?
20
+ if VERSIONS.key?(version)
21
+ file = 'paperclip.jar'
22
+ IO.copy_stream(open(VERSIONS[version]), file)
23
+ else
24
+ raise 'Invalid platform version provided'
25
+ end
26
+ else
27
+ provider.install(nil)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,21 @@
1
+ module LumiaServer
2
+ class Plugin
3
+
4
+ attr_reader :name
5
+ attr_reader :version
6
+ attr_reader :provider
7
+
8
+ def initialize(data)
9
+ @data = data
10
+ @name = data['name']
11
+ @version = data['version']
12
+ @provider = data.key?('provider') ? Provider.new(@data['provider']) : nil
13
+ end
14
+
15
+ def install
16
+ unless provider.nil?
17
+ provider.install('plugins')
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,22 @@
1
+ module LumiaServer
2
+ class Provider
3
+
4
+ require 'open-uri'
5
+
6
+ autoload :Direct, 'lumia-server/provider/direct'
7
+
8
+ def self.new(data)
9
+ return super if self < Provider
10
+ const = data['id'].to_s.downcase
11
+ raise format('Unknown platform %p', options[:platform]) unless (const = constants.detect { |c| c.to_s.downcase == const })
12
+ platform = const_get(const).new(data)
13
+ platform
14
+ end
15
+
16
+ def initialize(data)
17
+ @data = data
18
+ end
19
+
20
+ def install(dir, force = true); end
21
+ end
22
+ end
@@ -0,0 +1,13 @@
1
+ module LumiaServer
2
+ class Provider
3
+ class Direct < Provider
4
+
5
+ def install(dir, force = false)
6
+ file = dir.nil? ? @data['file'] : File.join(dir, @data['file'])
7
+ if !File.exist?(file) || force
8
+ IO.copy_stream(open(@data['url']), file)
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,53 @@
1
+ require 'lumia-server/plugin'
2
+ require 'lumia-server/provider'
3
+
4
+ module LumiaServer
5
+ class Server
6
+
7
+ require 'fileutils'
8
+
9
+ attr_reader :platform
10
+ attr_reader :plugins
11
+
12
+ def initialize(data)
13
+ @platform = Platform.new(data['platform'])
14
+ @plugins = []
15
+ if data.key?('mods')
16
+ data['mods'].each do |mod|
17
+ @plugins << Plugin.new(mod)
18
+ end
19
+ end
20
+ end
21
+
22
+ def info
23
+ $stderr.puts " "
24
+ $stderr.puts "Server Information:"
25
+ $stderr.puts "-------------------"
26
+ $stderr.puts "Platform: #{print(platform.name, 'Unknown')} (#{print(platform.version, '0.0.0')})"
27
+ $stderr.puts "Plugins (#{plugins.length}):"
28
+ plugins.each do |mod|
29
+ $stderr.puts " - #{print(mod.name, 'Unknown')} (#{print(mod.version, '0.0.0')})"
30
+ end
31
+ $stderr.puts " "
32
+ end
33
+
34
+ def install_platform
35
+ $stdout.puts "Installing platform.."
36
+ FileUtils.mkdir_p 'plugins'
37
+ platform.install
38
+ end
39
+
40
+ def install_mods
41
+ plugins.each do |mod|
42
+ $stdout.puts "Installing #{mod.name}.."
43
+ mod.install
44
+ end
45
+ end
46
+
47
+ private
48
+
49
+ def print(field, other)
50
+ field.nil? ? other : field
51
+ end
52
+ end
53
+ end
@@ -1,3 +1,3 @@
1
1
  module LumiaServer
2
- VERSION = "1.0.1.alpha".freeze
2
+ VERSION = "1.0.2.alpha".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lumia-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1.alpha
4
+ version: 1.0.2.alpha
5
5
  platform: ruby
6
6
  authors:
7
7
  - Conreptio
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-08 00:00:00.000000000 Z
11
+ date: 2017-12-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -48,8 +48,17 @@ files:
48
48
  - bin/lumia-server
49
49
  - lib/lumia-server.rb
50
50
  - lib/lumia-server/cli.rb
51
+ - lib/lumia-server/command/build.rb
51
52
  - lib/lumia-server/command/command.rb
52
- - lib/lumia-server/command/run.rb
53
+ - lib/lumia-server/command/exec.rb
54
+ - lib/lumia-server/command/start.rb
55
+ - lib/lumia-server/platform.rb
56
+ - lib/lumia-server/platform/custom.rb
57
+ - lib/lumia-server/platform/paper.rb
58
+ - lib/lumia-server/plugin.rb
59
+ - lib/lumia-server/provider.rb
60
+ - lib/lumia-server/provider/direct.rb
61
+ - lib/lumia-server/server.rb
53
62
  - lib/lumia-server/version.rb
54
63
  homepage: https://github.com/neolumia/lumia-server
55
64
  licenses:
@@ -71,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
80
  version: 1.8.11
72
81
  requirements: []
73
82
  rubyforge_project:
74
- rubygems_version: 2.7.3
83
+ rubygems_version: 2.7.4
75
84
  signing_key:
76
85
  specification_version: 4
77
86
  summary: Minecraft Server Helper