class PodsOrz::BinaryServer

Attributes

http_host[RW]

Public Class Methods

new() click to toggle source
# File lib/podsorz/core/Binary/binary_server.rb, line 10
def initialize()
        @http_host = "http://192.168.6.127:8899"
end

Public Instance Methods

__action_upload(pod, file_path, pod_version, extension) click to toggle source
# File lib/podsorz/core/Binary/binary_server.rb, line 27
def __action_upload(pod, file_path, pod_version, extension)
        is_upload_success = false

        file_name = "#{pod}#{extension}"
        file_name_path = File.expand_path(file_name, file_path)

        unless File.exist?(file_name_path)
                Logger.error("#{file_name_path} not exist!")
                is_upload_success = false
                return is_upload_success
        end 

        mutex = Mutex.new()
        condition_var = ConditionVariable.new

        wait_thread = Thread.new do 
                mutex.synchronize {
                        condition_var.wait(mutex, 30)
                }
        end

        command = Thread.new do
                mutex.synchronize {
                        upload_cmd = "curl #{@http_host}/upload -F \"podname=#{pod}\" -F \"version=#{pod_version}\"  -F \"file=@#{file_name_path};filename=#{file_name}\""
                        
                        Logger.warning("upload #{file_name}...\n #{upload_cmd}")

                        Open3.popen3(cmd_list.join(";")) do |stdin , stdout , stderr, wait_thr|
                                while line = stdout.gets
                                        puts line
                                        if line.include? "\"success\":"
                                                is_upload_success = true if line.include? "true"
                                                condition_var.signal
                                        end
                                end
                        end

                        IO.popen(upload_cmd) do |io|
                                io_lines = io.readlines
                                io_lines.each do |line|
                                        puts line
                                        
                                end
                                io.close
                        end
                }
        end

        wait_thread.join()

        Logger.error("upload #{file_name} failure!") unless is_upload_success

        is_upload_success
end
delete_pod_file(pod, pod_version) click to toggle source
# File lib/podsorz/core/Binary/binary_server.rb, line 82
def delete_pod_file(pod, pod_version)
        is_delete_success = false

        mutex = Mutex.new()
        condition_var = ConditionVariable.new

        wait_thread = Thread.new do 
                mutex.synchronize {
                        condition_var.wait(mutex, 2)
                }
        end

        command = Thread.new do 
                mutex.synchronize {
                        delete_cmd = ""
                        if pod_version && pod_version.length > 0
                                delete_cmd = "curl #{@http_host}/delete -d \"podname=#{pod}\";\"version=#{pod_version}\""
                        else
                                delete_cmd = "curl #{@http_host}/delete -d \"podname=#{pod}\""
                        end
                        
                        Logger.warning("delete #{pod}...\n #{delete_cmd}")
        
                        Open3.popen3(delete_cmd) do |stdin , stdout , stderr, wait_thr|
                                while line = stdout.gets
                                        puts line
                                        if line.include? "\"success\":"
                                                is_delete_success = true if line.include? "true"
                                                condition_var.signal
                                        end
                                end
                        end
                }
        end

        wait_thread.join()

        Logger.error("delete #{pod} failure!") unless is_delete_success

        is_delete_success
end
upload_pod_file(pod, file_path, pod_version) click to toggle source
# File lib/podsorz/core/Binary/binary_server.rb, line 14
def upload_pod_file(pod, file_path, pod_version)
        is_upload_success = false

        # uplaod zip
        is_upload_success = __action_upload(pod,file_path,pod_version,".framework.zip")
        return is_upload_success unless is_upload_success
        
        # upload .podspec
        is_upload_success = __action_upload(pod,file_path,pod_version,".podspec")
        
        is_upload_success 
end