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 +4 -4
- data/lib/lumia-server/cli.rb +3 -1
- data/lib/lumia-server/command/build.rb +31 -0
- data/lib/lumia-server/command/command.rb +4 -0
- data/lib/lumia-server/command/{run.rb → exec.rb} +1 -1
- data/lib/lumia-server/command/start.rb +12 -0
- data/lib/lumia-server/platform.rb +29 -0
- data/lib/lumia-server/platform/custom.rb +12 -0
- data/lib/lumia-server/platform/paper.rb +32 -0
- data/lib/lumia-server/plugin.rb +21 -0
- data/lib/lumia-server/provider.rb +22 -0
- data/lib/lumia-server/provider/direct.rb +13 -0
- data/lib/lumia-server/server.rb +53 -0
- data/lib/lumia-server/version.rb +1 -1
- metadata +13 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 22162e5f148845c889253b7afb640b59c36d4de2163d6a4fc5f05392499ba690
|
|
4
|
+
data.tar.gz: db89e490d7991c37dd09f8c2b72f7cb712170dbcba7764f9438a041fcf6b2577
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9759df4c2f5bea86157efa48a821370b6ee953c647a3e7b5f7640cbc4f3a003065b41001d378b58bf00a697689c4996d6f0deb87b5df72c0de7f59e1284e25cb
|
|
7
|
+
data.tar.gz: c0552c83ffdfe398034ee9823446663e67f45e35a04dd43f6a572e8dd74fb55db75bf90fe2c6b57deac5229c556a2e67d3155675c02416ac80ef96b4e70caa1f
|
data/lib/lumia-server/cli.rb
CHANGED
|
@@ -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
|
|
@@ -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,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
|
data/lib/lumia-server/version.rb
CHANGED
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.
|
|
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-
|
|
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/
|
|
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.
|
|
83
|
+
rubygems_version: 2.7.4
|
|
75
84
|
signing_key:
|
|
76
85
|
specification_version: 4
|
|
77
86
|
summary: Minecraft Server Helper
|