lumia-server 1.0 → 1.0.1.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 +2 -13
- data/lib/lumia-server/command/command.rb +5 -5
- data/lib/lumia-server/command/run.rb +24 -0
- data/lib/lumia-server/version.rb +1 -1
- metadata +4 -17
- data/lib/lumia-server/command/build.rb +0 -58
- data/lib/lumia-server/command/clean.rb +0 -10
- data/lib/lumia-server/command/exec.rb +0 -26
- data/lib/lumia-server/command/start.rb +0 -10
- data/lib/lumia-server/platform.rb +0 -52
- data/lib/lumia-server/platform/bungeecord.rb +0 -22
- data/lib/lumia-server/platform/custom.rb +0 -12
- data/lib/lumia-server/platform/paper.rb +0 -32
- data/lib/lumia-server/platform/waterfall.rb +0 -22
- data/lib/lumia-server/plugin.rb +0 -41
- data/lib/lumia-server/provider.rb +0 -25
- data/lib/lumia-server/provider/direct.rb +0 -21
- data/lib/lumia-server/secret.rb +0 -26
- data/lib/lumia-server/server.rb +0 -70
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 150ce16d74116b85781d2715731d77c8d1e0cf1d61b1f553277a8f46dec84828
         | 
| 4 | 
            +
              data.tar.gz: 76cb6da84b4d97a3f7a932c4cd354c78d5935283bbaa2dba36cc1e925cce0a5c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 3f9f8bc68cba21bcfbe11aec6e22380209b067322c3e2640e61ff2a93e1d49471b426c14b812b93f9c30f14e04aef0701886e733ab53c32329e02499de2cc8c0
         | 
| 7 | 
            +
              data.tar.gz: 0c4e49e4d5033134af01cf8e74075fcb9f2106321fd808009a6ad650eb076cfdbb9ad802c6955f45394d1bea461a004e1c26e8cb46eeaa6e2c2de45ca63999e2
         | 
    
        data/lib/lumia-server/cli.rb
    CHANGED
    
    | @@ -1,13 +1,7 @@ | |
| 1 | 
            -
            require 'lumia-server/version'
         | 
| 2 | 
            -
            require 'lumia-server/command/command'
         | 
| 3 | 
            -
             | 
| 4 1 | 
             
            module LumiaServer
         | 
| 5 2 | 
             
              module CLI
         | 
| 6 3 |  | 
| 7 | 
            -
                autoload : | 
| 8 | 
            -
                autoload :Start, 'lumia-server/command/start'
         | 
| 9 | 
            -
                autoload :Build, 'lumia-server/command/build'
         | 
| 10 | 
            -
                autoload :Clean, 'lumia-server/command/clean'
         | 
| 4 | 
            +
                autoload :Run, 'lumia-server/command/run'
         | 
| 11 5 |  | 
| 12 6 | 
             
                extend self
         | 
| 13 7 |  | 
| @@ -20,15 +14,10 @@ module LumiaServer | |
| 20 14 | 
             
                def command(arg)
         | 
| 21 15 | 
             
                  name = arg.to_s.downcase
         | 
| 22 16 | 
             
                  unless (name = constants.detect { |c| c.to_s.downcase == name })
         | 
| 23 | 
            -
                    puts "Unknown command provided: #{arg}"
         | 
| 17 | 
            +
                    $stderr.puts "Unknown command provided: #{arg}"
         | 
| 24 18 | 
             
                    exit 1
         | 
| 25 19 | 
             
                  end
         | 
| 26 20 | 
             
                  const_get(name)
         | 
| 27 21 | 
             
                end
         | 
| 28 | 
            -
             | 
| 29 | 
            -
                def error(message)
         | 
| 30 | 
            -
                  puts "Error: #{message}"
         | 
| 31 | 
            -
                  exit 1
         | 
| 32 | 
            -
                end
         | 
| 33 22 | 
             
              end
         | 
| 34 23 | 
             
            end
         | 
| @@ -4,18 +4,18 @@ module LumiaServer | |
| 4 4 | 
             
              module CLI
         | 
| 5 5 | 
             
                class Command
         | 
| 6 6 |  | 
| 7 | 
            -
                  require 'fileutils'
         | 
| 8 7 | 
             
                  require 'json'
         | 
| 9 | 
            -
                  require 'benchmark'
         | 
| 10 | 
            -
             | 
| 11 | 
            -
                  attr_reader :args
         | 
| 12 | 
            -
                  attr_reader :options
         | 
| 13 8 |  | 
| 14 9 | 
             
                  def initialize(args, options)
         | 
| 15 10 | 
             
                    @args = args
         | 
| 16 11 | 
             
                    @options = options
         | 
| 17 12 | 
             
                  end
         | 
| 18 13 |  | 
| 14 | 
            +
                  def error(message)
         | 
| 15 | 
            +
                    $stderr.puts message
         | 
| 16 | 
            +
                    exit 1
         | 
| 17 | 
            +
                  end
         | 
| 18 | 
            +
             | 
| 19 19 | 
             
                  def run; end
         | 
| 20 20 | 
             
                end
         | 
| 21 21 | 
             
              end
         | 
| @@ -0,0 +1,24 @@ | |
| 1 | 
            +
            require 'lumia-server/command/command'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module LumiaServer
         | 
| 4 | 
            +
              module CLI
         | 
| 5 | 
            +
                class Run < Command
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                  def run
         | 
| 8 | 
            +
                    error('No script name provided') unless @args[0]
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                    file = File.join('scripts', @args[0])
         | 
| 11 | 
            +
                    if File.exist?(file)
         | 
| 12 | 
            +
                      exec "bash #{file}"
         | 
| 13 | 
            +
                    else
         | 
| 14 | 
            +
                      error('No script name provided') unless @args[0]
         | 
| 15 | 
            +
                      error('server.json was not found') unless File.exist?('server.json')
         | 
| 16 | 
            +
                      @data = JSON.parse(File.read('server.json'))
         | 
| 17 | 
            +
                      line = @data['scripts'][@args[0]]
         | 
| 18 | 
            +
                      error("Invalid script name: #{@args[0]}") unless line
         | 
| 19 | 
            +
                      exec line
         | 
| 20 | 
            +
                    end
         | 
| 21 | 
            +
                  end
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
            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:  | 
| 4 | 
            +
              version: 1.0.1.alpha
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Conreptio
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2017-12-08 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rake
         | 
| @@ -48,21 +48,8 @@ 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
         | 
| 52 | 
            -
            - lib/lumia-server/command/clean.rb
         | 
| 53 51 | 
             
            - lib/lumia-server/command/command.rb
         | 
| 54 | 
            -
            - lib/lumia-server/command/ | 
| 55 | 
            -
            - lib/lumia-server/command/start.rb
         | 
| 56 | 
            -
            - lib/lumia-server/platform.rb
         | 
| 57 | 
            -
            - lib/lumia-server/platform/bungeecord.rb
         | 
| 58 | 
            -
            - lib/lumia-server/platform/custom.rb
         | 
| 59 | 
            -
            - lib/lumia-server/platform/paper.rb
         | 
| 60 | 
            -
            - lib/lumia-server/platform/waterfall.rb
         | 
| 61 | 
            -
            - lib/lumia-server/plugin.rb
         | 
| 62 | 
            -
            - lib/lumia-server/provider.rb
         | 
| 63 | 
            -
            - lib/lumia-server/provider/direct.rb
         | 
| 64 | 
            -
            - lib/lumia-server/secret.rb
         | 
| 65 | 
            -
            - lib/lumia-server/server.rb
         | 
| 52 | 
            +
            - lib/lumia-server/command/run.rb
         | 
| 66 53 | 
             
            - lib/lumia-server/version.rb
         | 
| 67 54 | 
             
            homepage: https://github.com/neolumia/lumia-server
         | 
| 68 55 | 
             
            licenses:
         | 
| @@ -84,7 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 84 71 | 
             
                  version: 1.8.11
         | 
| 85 72 | 
             
            requirements: []
         | 
| 86 73 | 
             
            rubyforge_project: 
         | 
| 87 | 
            -
            rubygems_version: 2.7. | 
| 74 | 
            +
            rubygems_version: 2.7.3
         | 
| 88 75 | 
             
            signing_key: 
         | 
| 89 76 | 
             
            specification_version: 4
         | 
| 90 77 | 
             
            summary: Minecraft Server Helper
         | 
| @@ -1,58 +0,0 @@ | |
| 1 | 
            -
            require 'lumia-server/server'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            module LumiaServer
         | 
| 4 | 
            -
              module CLI
         | 
| 5 | 
            -
                class Build < Command
         | 
| 6 | 
            -
             | 
| 7 | 
            -
                  require 'erb'
         | 
| 8 | 
            -
                  require 'yaml'
         | 
| 9 | 
            -
             | 
| 10 | 
            -
                  def run
         | 
| 11 | 
            -
                    FileUtils.mkdir_p File.join(Dir.home, '.lumia')
         | 
| 12 | 
            -
             | 
| 13 | 
            -
                    LumiaServer::CLI.error('server.json was not found') unless File.exist?('server.json')
         | 
| 14 | 
            -
                    @data = JSON.parse(File.read('server.json'))
         | 
| 15 | 
            -
             | 
| 16 | 
            -
                    time = Benchmark.realtime {
         | 
| 17 | 
            -
                      puts 'Initialising server..'
         | 
| 18 | 
            -
                      yaml_file = File.join('build', '.lumia', 'server.yml')
         | 
| 19 | 
            -
                      yaml = File.exist?(yaml_file) ? YAML.load(File.open(yaml_file)) : nil
         | 
| 20 | 
            -
             | 
| 21 | 
            -
                      @server = Server.new(@data, yaml)
         | 
| 22 | 
            -
             | 
| 23 | 
            -
                      puts 'Copying files..'
         | 
| 24 | 
            -
                      Dir.glob("src/**/*").each do |file|
         | 
| 25 | 
            -
                        unless File.directory?(file)
         | 
| 26 | 
            -
                          out = file.sub('src', 'build')
         | 
| 27 | 
            -
                          out = File.join(File.dirname(out), File.basename(out, '.erb'))
         | 
| 28 | 
            -
                          FileUtils.mkdir_p File.dirname(out)
         | 
| 29 | 
            -
                          File.open(file) do |fh|
         | 
| 30 | 
            -
                            erb = ERB.new(fh.read)
         | 
| 31 | 
            -
                            File.open(out, 'w') do |f|
         | 
| 32 | 
            -
                              f.write erb.result(binding)
         | 
| 33 | 
            -
                            end
         | 
| 34 | 
            -
                          end
         | 
| 35 | 
            -
                        end
         | 
| 36 | 
            -
                      end
         | 
| 37 | 
            -
             | 
| 38 | 
            -
                      puts 'Copying secrets..'
         | 
| 39 | 
            -
                      @server.build_secrets
         | 
| 40 | 
            -
             | 
| 41 | 
            -
                      @server.install_platform
         | 
| 42 | 
            -
                      @server.install_mods
         | 
| 43 | 
            -
             | 
| 44 | 
            -
                      update_yaml = {}
         | 
| 45 | 
            -
                      update_yaml[@server.platform.name] = @server.platform.id
         | 
| 46 | 
            -
                      @server.mods.each { |m|
         | 
| 47 | 
            -
                        unless m.provider.nil?
         | 
| 48 | 
            -
                          update_yaml[m.name] = m.id
         | 
| 49 | 
            -
                        end
         | 
| 50 | 
            -
                      }
         | 
| 51 | 
            -
                      FileUtils.mkdir_p File.dirname(yaml_file)
         | 
| 52 | 
            -
                      File.open(yaml_file, 'w') { |f| f.write update_yaml.to_yaml }
         | 
| 53 | 
            -
                    }
         | 
| 54 | 
            -
                    puts "Done. Server has been installed (#{time.round(3)}s)."
         | 
| 55 | 
            -
                  end
         | 
| 56 | 
            -
                end
         | 
| 57 | 
            -
              end
         | 
| 58 | 
            -
            end
         | 
| @@ -1,26 +0,0 @@ | |
| 1 | 
            -
            module LumiaServer
         | 
| 2 | 
            -
              module CLI
         | 
| 3 | 
            -
                class Exec < Command
         | 
| 4 | 
            -
             | 
| 5 | 
            -
                  def run
         | 
| 6 | 
            -
                    LumiaServer::CLI.error('No script name provided') unless @args[0]
         | 
| 7 | 
            -
             | 
| 8 | 
            -
                    file = File.join(Dir.pwd, 'scripts', @args[0])
         | 
| 9 | 
            -
                    server = File.join(Dir.pwd, 'server.json')
         | 
| 10 | 
            -
             | 
| 11 | 
            -
                    Dir.chdir('build') do
         | 
| 12 | 
            -
                      if File.exist?(file)
         | 
| 13 | 
            -
                        exec "bash #{file}"
         | 
| 14 | 
            -
                      else
         | 
| 15 | 
            -
                        LumiaServer::CLI.error('No script name provided') unless @args[0]
         | 
| 16 | 
            -
                        LumiaServer::CLI.error('server.json was not found') unless File.exist?(server)
         | 
| 17 | 
            -
                        @data = JSON.parse(File.read(server))
         | 
| 18 | 
            -
                        line = @data['scripts'][@args[0]]
         | 
| 19 | 
            -
                        LumiaServer::CLI.error("Invalid script name: #{@args[0]}") unless line
         | 
| 20 | 
            -
                        exec line
         | 
| 21 | 
            -
                      end
         | 
| 22 | 
            -
                    end
         | 
| 23 | 
            -
                  end
         | 
| 24 | 
            -
                end
         | 
| 25 | 
            -
              end
         | 
| 26 | 
            -
            end
         | 
| @@ -1,52 +0,0 @@ | |
| 1 | 
            -
            module LumiaServer
         | 
| 2 | 
            -
              class Platform
         | 
| 3 | 
            -
             | 
| 4 | 
            -
                require 'open-uri'
         | 
| 5 | 
            -
             | 
| 6 | 
            -
                attr_reader :data
         | 
| 7 | 
            -
                attr_reader :server_yaml
         | 
| 8 | 
            -
             | 
| 9 | 
            -
                attr_reader :name
         | 
| 10 | 
            -
                attr_reader :version
         | 
| 11 | 
            -
                attr_reader :provider
         | 
| 12 | 
            -
                attr_reader :id
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                autoload :Custom, 'lumia-server/platform/custom'
         | 
| 15 | 
            -
                autoload :Paper, 'lumia-server/platform/paper'
         | 
| 16 | 
            -
                autoload :BungeeCord, 'lumia-server/platform/bungeecord'
         | 
| 17 | 
            -
                autoload :Waterfall, 'lumia-server/platform/waterfall'
         | 
| 18 | 
            -
             | 
| 19 | 
            -
                def self.new(data, server_yaml)
         | 
| 20 | 
            -
                  return super if self < Platform
         | 
| 21 | 
            -
                  const = data['id'].to_s.downcase
         | 
| 22 | 
            -
                  raise format('Unknown platform %p', data['id']) unless (const = constants.detect { |c| c.to_s.downcase == const })
         | 
| 23 | 
            -
                  platform = const_get(const).new(data, server_yaml)
         | 
| 24 | 
            -
                  platform
         | 
| 25 | 
            -
                end
         | 
| 26 | 
            -
             | 
| 27 | 
            -
                def initialize(data, server_yaml)
         | 
| 28 | 
            -
                  @data = data
         | 
| 29 | 
            -
                  @server_yaml = server_yaml
         | 
| 30 | 
            -
             | 
| 31 | 
            -
                  @version = data['version']
         | 
| 32 | 
            -
                  @provider = data.key?('provider') ? Provider.new(@data['provider']) : nil
         | 
| 33 | 
            -
                  @id = provider.nil? ? version : provider.id
         | 
| 34 | 
            -
                end
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                def install
         | 
| 37 | 
            -
                  if needs_update
         | 
| 38 | 
            -
                    puts "#{name}: updating.."
         | 
| 39 | 
            -
                    install_platform
         | 
| 40 | 
            -
                  else
         | 
| 41 | 
            -
                    puts "#{name}: up-to-date"
         | 
| 42 | 
            -
                  end
         | 
| 43 | 
            -
                end
         | 
| 44 | 
            -
             | 
| 45 | 
            -
                def needs_update
         | 
| 46 | 
            -
                  server_yaml.nil? || server_yaml[name] != id
         | 
| 47 | 
            -
                end
         | 
| 48 | 
            -
             | 
| 49 | 
            -
                def install_platform;
         | 
| 50 | 
            -
                end
         | 
| 51 | 
            -
              end
         | 
| 52 | 
            -
            end
         | 
| @@ -1,22 +0,0 @@ | |
| 1 | 
            -
            module LumiaServer
         | 
| 2 | 
            -
              class Platform
         | 
| 3 | 
            -
                class BungeeCord < Platform
         | 
| 4 | 
            -
             | 
| 5 | 
            -
                  URL = 'https://ci.md-5.net/job/BungeeCord/lastStableBuild/artifact/bootstrap/target/BungeeCord.jar'
         | 
| 6 | 
            -
             | 
| 7 | 
            -
                  def initialize(data, server_yaml)
         | 
| 8 | 
            -
                    super
         | 
| 9 | 
            -
                    @name = 'BungeeCord'
         | 
| 10 | 
            -
                  end
         | 
| 11 | 
            -
             | 
| 12 | 
            -
                  def install_platform
         | 
| 13 | 
            -
                    file = 'BungeeCord.jar'
         | 
| 14 | 
            -
                    if provider.nil?
         | 
| 15 | 
            -
                      IO.copy_stream(open(URL), File.join('build', file))
         | 
| 16 | 
            -
                    else
         | 
| 17 | 
            -
                      provider.install('build', file)
         | 
| 18 | 
            -
                    end
         | 
| 19 | 
            -
                  end
         | 
| 20 | 
            -
                end
         | 
| 21 | 
            -
              end
         | 
| 22 | 
            -
            end
         | 
| @@ -1,32 +0,0 @@ | |
| 1 | 
            -
            module LumiaServer
         | 
| 2 | 
            -
              class Platform
         | 
| 3 | 
            -
                class Paper < Platform
         | 
| 4 | 
            -
             | 
| 5 | 
            -
                  VERSIONS = {
         | 
| 6 | 
            -
                      '1.12.2' => 'https://ci.destroystokyo.com/job/PaperSpigot/1294/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, server_yaml)
         | 
| 14 | 
            -
                    super
         | 
| 15 | 
            -
                    @name = 'Paper'
         | 
| 16 | 
            -
                  end
         | 
| 17 | 
            -
             | 
| 18 | 
            -
                  def install_platform
         | 
| 19 | 
            -
                    if provider.nil?
         | 
| 20 | 
            -
                      if VERSIONS.key?(version)
         | 
| 21 | 
            -
                        file = 'paperclip.jar'
         | 
| 22 | 
            -
                        IO.copy_stream(open(VERSIONS[version]), File.join('build', file))
         | 
| 23 | 
            -
                      else
         | 
| 24 | 
            -
                        raise 'Invalid platform version provided'
         | 
| 25 | 
            -
                      end
         | 
| 26 | 
            -
                    else
         | 
| 27 | 
            -
                      provider.install('build')
         | 
| 28 | 
            -
                    end
         | 
| 29 | 
            -
                  end
         | 
| 30 | 
            -
                end
         | 
| 31 | 
            -
              end
         | 
| 32 | 
            -
            end
         | 
| @@ -1,22 +0,0 @@ | |
| 1 | 
            -
            module LumiaServer
         | 
| 2 | 
            -
              class Platform
         | 
| 3 | 
            -
                class Waterfall < Platform
         | 
| 4 | 
            -
             | 
| 5 | 
            -
                  URL = 'https://ci.destroystokyo.com/job/Waterfall/lastStableBuild/artifact/Waterfall-Proxy/bootstrap/target/Waterfall.jar'
         | 
| 6 | 
            -
             | 
| 7 | 
            -
                  def initialize(data, server_yaml)
         | 
| 8 | 
            -
                    super
         | 
| 9 | 
            -
                    @name = 'Waterfall'
         | 
| 10 | 
            -
                  end
         | 
| 11 | 
            -
             | 
| 12 | 
            -
                  def install_platform
         | 
| 13 | 
            -
                    file = 'Waterfall.jar'
         | 
| 14 | 
            -
                    if provider.nil?
         | 
| 15 | 
            -
                      IO.copy_stream(open(URL), File.join('build', file))
         | 
| 16 | 
            -
                    else
         | 
| 17 | 
            -
                      provider.install('build', file)
         | 
| 18 | 
            -
                    end
         | 
| 19 | 
            -
                  end
         | 
| 20 | 
            -
                end
         | 
| 21 | 
            -
              end
         | 
| 22 | 
            -
            end
         | 
    
        data/lib/lumia-server/plugin.rb
    DELETED
    
    | @@ -1,41 +0,0 @@ | |
| 1 | 
            -
            module LumiaServer
         | 
| 2 | 
            -
              class Plugin
         | 
| 3 | 
            -
             | 
| 4 | 
            -
                attr_reader :data
         | 
| 5 | 
            -
                attr_reader :server_yaml
         | 
| 6 | 
            -
             | 
| 7 | 
            -
                attr_reader :name
         | 
| 8 | 
            -
                attr_reader :version
         | 
| 9 | 
            -
                attr_reader :provider
         | 
| 10 | 
            -
                attr_reader :id
         | 
| 11 | 
            -
             | 
| 12 | 
            -
                def initialize(data, server_yaml)
         | 
| 13 | 
            -
                  @data = data
         | 
| 14 | 
            -
                  @server_yaml = server_yaml
         | 
| 15 | 
            -
             | 
| 16 | 
            -
                  @name = data['name']
         | 
| 17 | 
            -
                  @version = data['version']
         | 
| 18 | 
            -
                  @provider = data.key?('provider') ? Provider.new(@data['provider']) : nil
         | 
| 19 | 
            -
                  @id = provider.nil? ? version : provider.id
         | 
| 20 | 
            -
                end
         | 
| 21 | 
            -
             | 
| 22 | 
            -
                def install
         | 
| 23 | 
            -
                  unless provider.nil?
         | 
| 24 | 
            -
                    if needs_update
         | 
| 25 | 
            -
                      puts "#{name}: updating.."
         | 
| 26 | 
            -
                      install_mod
         | 
| 27 | 
            -
                    else
         | 
| 28 | 
            -
                      puts "#{name}: up-to-date"
         | 
| 29 | 
            -
                    end
         | 
| 30 | 
            -
                  end
         | 
| 31 | 
            -
                end
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                def needs_update
         | 
| 34 | 
            -
                  server_yaml.nil? || server_yaml[name] != id
         | 
| 35 | 
            -
                end
         | 
| 36 | 
            -
             | 
| 37 | 
            -
                def install_mod
         | 
| 38 | 
            -
                  provider.install(File.join('build', 'plugins'))
         | 
| 39 | 
            -
                end
         | 
| 40 | 
            -
              end
         | 
| 41 | 
            -
            end
         | 
| @@ -1,25 +0,0 @@ | |
| 1 | 
            -
            module LumiaServer
         | 
| 2 | 
            -
              class Provider
         | 
| 3 | 
            -
             | 
| 4 | 
            -
                require 'open-uri'
         | 
| 5 | 
            -
             | 
| 6 | 
            -
                autoload :Direct, 'lumia-server/provider/direct'
         | 
| 7 | 
            -
             | 
| 8 | 
            -
                attr_reader :data
         | 
| 9 | 
            -
                attr_reader :id
         | 
| 10 | 
            -
             | 
| 11 | 
            -
                def self.new(data)
         | 
| 12 | 
            -
                  return super if self < Provider
         | 
| 13 | 
            -
                  const = data['id'].to_s.downcase
         | 
| 14 | 
            -
                  raise format('Unknown platform %p', options[:platform]) unless (const = constants.detect { |c| c.to_s.downcase == const })
         | 
| 15 | 
            -
                  platform = const_get(const).new(data)
         | 
| 16 | 
            -
                  platform
         | 
| 17 | 
            -
                end
         | 
| 18 | 
            -
             | 
| 19 | 
            -
                def initialize(data)
         | 
| 20 | 
            -
                  @data = data
         | 
| 21 | 
            -
                end
         | 
| 22 | 
            -
             | 
| 23 | 
            -
                def install(dir, file = nil, force = true); end
         | 
| 24 | 
            -
              end
         | 
| 25 | 
            -
            end
         | 
| @@ -1,21 +0,0 @@ | |
| 1 | 
            -
            module LumiaServer
         | 
| 2 | 
            -
              class Provider
         | 
| 3 | 
            -
                class Direct < Provider
         | 
| 4 | 
            -
             | 
| 5 | 
            -
                  def initialize(data)
         | 
| 6 | 
            -
                    super
         | 
| 7 | 
            -
                    @id = data['url']
         | 
| 8 | 
            -
                  end
         | 
| 9 | 
            -
             | 
| 10 | 
            -
                  def install(dir, file = nil, force = true)
         | 
| 11 | 
            -
                    name = data['file'].nil? ? file : data['file']
         | 
| 12 | 
            -
                    LumiaServer::CLI.error('No file name provided for provider \'direct\'') if name.nil?
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                    file = dir.nil? ? name : File.join(dir, name)
         | 
| 15 | 
            -
                    if !File.exist?(file) || force
         | 
| 16 | 
            -
                      IO.copy_stream(open(data['url']), file)
         | 
| 17 | 
            -
                    end
         | 
| 18 | 
            -
                  end
         | 
| 19 | 
            -
                end
         | 
| 20 | 
            -
              end
         | 
| 21 | 
            -
            end
         | 
    
        data/lib/lumia-server/secret.rb
    DELETED
    
    | @@ -1,26 +0,0 @@ | |
| 1 | 
            -
            module LumiaServer
         | 
| 2 | 
            -
              class Secret
         | 
| 3 | 
            -
             | 
| 4 | 
            -
                attr_reader :data
         | 
| 5 | 
            -
                attr_reader :source
         | 
| 6 | 
            -
                attr_reader :destination
         | 
| 7 | 
            -
             | 
| 8 | 
            -
                def initialize(home, data)
         | 
| 9 | 
            -
                  @data = data
         | 
| 10 | 
            -
                  @source = File.join(home, data['source'])
         | 
| 11 | 
            -
                  @destination = File.join('build', data['destination'])
         | 
| 12 | 
            -
                end
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                def build
         | 
| 15 | 
            -
                  # Quick Fix
         | 
| 16 | 
            -
                  if File.extname(destination).empty?
         | 
| 17 | 
            -
                    FileUtils.mkdir_p destination
         | 
| 18 | 
            -
                  end
         | 
| 19 | 
            -
                  
         | 
| 20 | 
            -
                  Dir.glob(source).each do |file|
         | 
| 21 | 
            -
                    FileUtils.cp_r(file, destination)
         | 
| 22 | 
            -
                    puts "Copied #{file} to #{File.absolute_path(destination)}"
         | 
| 23 | 
            -
                  end
         | 
| 24 | 
            -
                end
         | 
| 25 | 
            -
              end
         | 
| 26 | 
            -
            end
         | 
    
        data/lib/lumia-server/server.rb
    DELETED
    
    | @@ -1,70 +0,0 @@ | |
| 1 | 
            -
            require 'lumia-server/plugin'
         | 
| 2 | 
            -
            require 'lumia-server/platform'
         | 
| 3 | 
            -
            require 'lumia-server/provider'
         | 
| 4 | 
            -
            require 'lumia-server/secret'
         | 
| 5 | 
            -
             | 
| 6 | 
            -
            module LumiaServer
         | 
| 7 | 
            -
              class Server
         | 
| 8 | 
            -
             | 
| 9 | 
            -
                require 'fileutils'
         | 
| 10 | 
            -
             | 
| 11 | 
            -
                attr_reader :platform
         | 
| 12 | 
            -
                attr_reader :mods
         | 
| 13 | 
            -
                attr_reader :secrets
         | 
| 14 | 
            -
             | 
| 15 | 
            -
                def initialize(data, server_yaml)
         | 
| 16 | 
            -
                  @platform = Platform.new(data['platform'], server_yaml)
         | 
| 17 | 
            -
                  @mods = []
         | 
| 18 | 
            -
                  if data.key?('mods')
         | 
| 19 | 
            -
                    data['mods'].each do |mod|
         | 
| 20 | 
            -
                      @mods << Plugin.new(mod, server_yaml)
         | 
| 21 | 
            -
                    end
         | 
| 22 | 
            -
                  end
         | 
| 23 | 
            -
                  @secrets = []
         | 
| 24 | 
            -
                  if data.key?('secrets')
         | 
| 25 | 
            -
                      data['secrets'].each do |secret|
         | 
| 26 | 
            -
                      @secrets << Secret.new(File.join(Dir.home, '.lumia'), secret)
         | 
| 27 | 
            -
                    end
         | 
| 28 | 
            -
                  end
         | 
| 29 | 
            -
                end
         | 
| 30 | 
            -
             | 
| 31 | 
            -
                def info
         | 
| 32 | 
            -
                  puts " "
         | 
| 33 | 
            -
                  puts "Server Information:"
         | 
| 34 | 
            -
                  puts "-------------------"
         | 
| 35 | 
            -
                  puts "Platform: #{print(platform.name, 'Unknown')} (#{print(platform.version, '0.0.0')})"
         | 
| 36 | 
            -
                  puts "Plugins (#{mods.length}):"
         | 
| 37 | 
            -
                  mods.each do |mod|
         | 
| 38 | 
            -
                    puts "  - #{print(mod.name, 'Unknown')} (#{print(mod.version, '0.0.0')})"
         | 
| 39 | 
            -
                  end
         | 
| 40 | 
            -
                  puts "Secrets (#{secrets.length}):"
         | 
| 41 | 
            -
                  secrets.each do |secret|
         | 
| 42 | 
            -
                    puts "  - #{secret.source}"
         | 
| 43 | 
            -
                  end
         | 
| 44 | 
            -
                  puts " "
         | 
| 45 | 
            -
                end
         | 
| 46 | 
            -
             | 
| 47 | 
            -
                def install_platform
         | 
| 48 | 
            -
                  FileUtils.mkdir_p 'build/plugins'
         | 
| 49 | 
            -
                  platform.install
         | 
| 50 | 
            -
                end
         | 
| 51 | 
            -
             | 
| 52 | 
            -
                def install_mods
         | 
| 53 | 
            -
                  mods.each do |mod|
         | 
| 54 | 
            -
                    mod.install
         | 
| 55 | 
            -
                  end
         | 
| 56 | 
            -
                end
         | 
| 57 | 
            -
             | 
| 58 | 
            -
                def build_secrets
         | 
| 59 | 
            -
                  secrets.each do |secret|
         | 
| 60 | 
            -
                    secret.build
         | 
| 61 | 
            -
                  end
         | 
| 62 | 
            -
                end
         | 
| 63 | 
            -
             | 
| 64 | 
            -
                private
         | 
| 65 | 
            -
             | 
| 66 | 
            -
                def print(field, other)
         | 
| 67 | 
            -
                  field.nil? ? other : field
         | 
| 68 | 
            -
                end
         | 
| 69 | 
            -
              end
         | 
| 70 | 
            -
            end
         |