Sha256: c01ac89b17d2b77677181174e35a7aa1da28e5f4525871136f44a4f3f97ab945
Contents?: true
Size: 1.61 KB
Versions: 14
Compression:
Stored size: 1.61 KB
Contents
require "rest_client" require "pp" require "json" require "logger" module Lolcommits class Lolsrv < Plugin SERVER = 'server' def initialize(runner) super self.name = 'lolsrv' self.default = false self.options << SERVER end def run log_file = File.new(self.runner.config.loldir + "/lolsrv.log", "a+") @logger = Logger.new(log_file) if configuration[SERVER].nil? puts "Missing server configuration. Use lolcommits --config -p lolsrv" return end fork do sync() end end def sync existing = get_existing_lols unless existing.nil? Dir.glob(self.runner.config.loldir + "/*.jpg") do |item| next if item == '.' or item == '..' # do work on real items sha = File.basename(item, '.*') unless existing.include?(sha) || sha == 'tmp_snapshot' upload(item, sha) end end end end def get_existing_lols begin lols = JSON.parse( RestClient.get(configuration[SERVER] + '/commits')) lols.map { |lol| lol["sha"] } rescue => error @logger.info "Existing commits could not be retrieved with Error " + error.message @logger.info error.backtrace return nil end end def upload(file, sha) begin RestClient.post( configuration[SERVER] + '/upload', :lol => File.new(file), :sha => sha) rescue => error @logger.info "Upload of LOL "+ sha + " failed with Error " + error.message return end end end end
Version data entries
14 entries across 14 versions & 1 rubygems