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
         |