class Lolcommits::Lolsrv

Public Class Methods

name() click to toggle source
# File lib/lolcommits/plugins/lolsrv.rb, line 68
def self.name
  "lolsrv"
end
new(runner) click to toggle source
Calls superclass method Lolcommits::Plugin::new
# File lib/lolcommits/plugins/lolsrv.rb, line 9
def initialize(runner)
  super
  self.options << 'server'
  if self.runner
    @logger = Logger.new(File.new(self.runner.config.loldir + "/lolsrv.log", "a+"))
  end
end

Public Instance Methods

get_existing_lols() click to toggle source
# File lib/lolcommits/plugins/lolsrv.rb, line 38
def get_existing_lols
  begin
    lols = JSON.parse(
    RestClient.get(configuration['server'] + "/lols"))
    lols.map { |lol| lol["sha"] }
  rescue => e
    log_error(e, "ERROR: existing lols could not be retrieved #{e.class} - #{e.message}")
    return nil
  end
end
is_configured?() click to toggle source
# File lib/lolcommits/plugins/lolsrv.rb, line 22
def is_configured?
  !configuration["enabled"].nil? && configuration["server"]
end
log_error(e, message) click to toggle source
# File lib/lolcommits/plugins/lolsrv.rb, line 62
def log_error(e, message)
  debug message
  @logger.info message
  @logger.info e.backtrace
end
run() click to toggle source
# File lib/lolcommits/plugins/lolsrv.rb, line 17
def run
  return unless valid_configuration?
  fork { sync() }
end
sync() click to toggle source
# File lib/lolcommits/plugins/lolsrv.rb, line 26
def sync
  existing = get_existing_lols
  unless existing.nil?
    Dir[self.runner.config.loldir + "/*.{jpg,gif}"].each do |item|
      sha = File.basename(item, ".*")
      unless existing.include?(sha) || sha == "tmp_snapshot"
        upload(item, sha)
      end
    end
  end
end
upload(file, sha) click to toggle source
# File lib/lolcommits/plugins/lolsrv.rb, line 49
def upload(file, sha)
  begin
    RestClient.post(
      configuration["server"] + "/uplol",
      :lol => File.new(file),
      :sha => sha
    )
  rescue => e
    log_error(e,"ERROR: Upload of lol #{sha} FAILED #{e.class} - #{e.message}")
    return
  end
end