module FIR::Publish
Public Instance Methods
convert_icon(origin_path)
click to toggle source
# File lib/fir/util/publish.rb, line 98 def convert_icon origin_path logger.info "Converting app's icon......" if @app_info[:type] == 'ios' output_path = Tempfile.new(['uncrushed_icon', '.png']).path FIR::Parser::Pngcrush.uncrush_icon(origin_path, output_path) origin_path = output_path if File.size(output_path) != 0 end origin_path end
fetch_uploading_info()
click to toggle source
# File lib/fir/util/publish.rb, line 89 def fetch_uploading_info logger.info "Fetching #{@app_info[:identifier]}@fir.im uploading info......" logger.info "Uploading app: #{@app_info[:name]}-#{@app_info[:version]}(Build #{@app_info[:build]})" post fir_api[:app_my_version], type: @app_info[:type], bundle_id: @app_info[:identifier], api_token: @token end
initialize_publish_options(args, options)
click to toggle source
# File lib/fir/util/publish.rb, line 73 def initialize_publish_options(args, options) @file_path = File.absolute_path(args.first.to_s) @file_type = File.extname(@file_path).delete('.') @token = options[:token] || current_token @changelog = read_changelog(options[:changelog]).to_s.to_utf8 @short = options[:short].to_s @passwd = options[:password].to_s @is_opened = @passwd.blank? ? options[:open] : false @export_qrcode = !!options[:qrcode] end
publish(*args, options)
click to toggle source
# File lib/fir/util/publish.rb, line 5 def publish(*args, options) initialize_publish_options(args, options) @app_info = send("#{@file_type}_info", @file_path, full_info: true) @change_log = options[:changelog] @uploading_info = fetch_uploading_info upload_app end
read_changelog(changelog)
click to toggle source
# File lib/fir/util/publish.rb, line 84 def read_changelog(changelog) return if changelog.blank? File.exist?(changelog) ? File.read(changelog) : changelog end
upload_app()
click to toggle source
# File lib/fir/util/publish.rb, line 13 def upload_app upload_app_icon unless @app_info[:icons].blank? upload_app_binary end
upload_app_binary()
click to toggle source
# File lib/fir/util/publish.rb, line 47 def upload_app_binary logger.info 'Uploading app binary......' uploaded_info = post(fir_api[:app_my_url], uploading_binary_info) return if uploaded_info[:is_completed] logger.error 'Upload app binary failed' logger.error uploaded_info[:msg] exit 1 end
upload_app_icon()
click to toggle source
# File lib/fir/util/publish.rb, line 18 def upload_app_icon logger.info 'Uploading app icon......' uploaded_info = post(fir_api[:app_my_url], uploading_icon_info) return if uploaded_info[:is_completed] logger.error 'Upload app icon failed' logger.error uploaded_info[:msg] exit 1 end
uploading_binary_info()
click to toggle source
# File lib/fir/util/publish.rb, line 56 def uploading_binary_info { id:@uploading_info[:id], token: @token, info: @change_log, file: File.new(@file_path, 'rb'), # Custom variables 'type' => @app_info[:type], 'identifier' => @app_info[:identifier], 'name' => @app_info[:display_name] || @app_info[:name], 'build' => @app_info[:build], 'version' => @app_info[:version], 'release_type' => @app_info[:release_type], 'distribution_name' => @app_info[:distribution_name] } end
uploading_icon_info()
click to toggle source
# File lib/fir/util/publish.rb, line 29 def uploading_icon_info large_icon_path = @app_info[:icons].max_by { |f| File.size(f) } uncrushed_icon_path = convert_icon(large_icon_path) { id:@uploading_info[:id], token: @token, file: File.new(uncrushed_icon_path, 'rb'), # Custom variables 'type' => @app_info[:type], 'identifier' => @app_info[:identifier], 'name' => @app_info[:display_name] || @app_info[:name], 'build' => @app_info[:build], 'version' => @app_info[:version], 'release_type' => @app_info[:release_type], 'distribution_name' => @app_info[:distribution_name] } end