class Lolcommits::Lolsrv

Public Class Methods

name() click to toggle source
# File lib/lolcommits/plugins/lolsrv.rb, line 50
def self.name
  'lolsrv'
end
new(runner) click to toggle source
Calls superclass method Lolcommits::Plugin::new
# File lib/lolcommits/plugins/lolsrv.rb, line 7
def initialize(runner)
  super
  options << 'server'
end
runner_order() click to toggle source
# File lib/lolcommits/plugins/lolsrv.rb, line 54
def self.runner_order
  :postcapture
end

Public Instance Methods

configured?() click to toggle source
# File lib/lolcommits/plugins/lolsrv.rb, line 17
def configured?
  !configuration['enabled'].nil? && configuration['server']
end
existing_lols() click to toggle source
# File lib/lolcommits/plugins/lolsrv.rb, line 30
def existing_lols
  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
run_postcapture() click to toggle source
# File lib/lolcommits/plugins/lolsrv.rb, line 12
def run_postcapture
  return unless valid_configuration?
  fork { sync }
end
sync() click to toggle source
# File lib/lolcommits/plugins/lolsrv.rb, line 21
def sync
  existing = existing_lols
  return unless existing.nil?
  Dir[runner.config.loldir + '/*.{jpg,gif}'].each do |item|
    sha = File.basename(item, '.*')
    upload(item, sha) unless existing.include?(sha) || sha == 'tmp_snapshot'
  end
end
upload(file, sha) click to toggle source
# File lib/lolcommits/plugins/lolsrv.rb, line 39
def upload(file, sha)
  RestClient.post(configuration['server'] + '/uplol',
                  :lol  => File.new(file),
                  :url  => runner.git_info.url + sha,
                  :repo => runner.git_info.repo,
                  :date => File.ctime(file),
                  :sha  => sha)
rescue => e
  log_error(e, "ERROR: Upload of lol #{sha} FAILED #{e.class} - #{e.message}")
end