module Flappy::BuildApk

Public Instance Methods

build_apk(*args, options) click to toggle source
# File lib/flappy/util/build_apk.rb, line 6
def build_apk(*args, options)

  set_flavor(options)
  # check_not_set_flavor

  initialize_build_common_options(args, options)

  Dir.chdir(@build_dir)
  File.new(File.join("#{@build_dir}","dependencies.txt"), "w")
  @build_cmd = initialize_apk_build_cmd

  logger_info_and_run_build_command

  # temp_cmd = initialize_get_dependencies_cmd;
  # logger_info_and_get_dependencies_command temp_cmd

  output_apk
  publish_build_app(options) if options.publish?

  logger_info_blank_line
end

Private Instance Methods

check_build_gradle_exist() click to toggle source
# File lib/flappy/util/build_apk.rb, line 97
def check_build_gradle_exist
  return if File.exist?("#{@build_dir}/build.gradle")

  logger.error "The build.gradle isn't exit"
  exit 1
end
check_no_output_apk() click to toggle source
# File lib/flappy/util/build_apk.rb, line 83
def check_no_output_apk
  unless @builded_apk
    logger.error 'Builded has no output apk'
    exit 1
  end
end
check_not_set_flavor() click to toggle source
# File lib/flappy/util/build_apk.rb, line 90
def check_not_set_flavor
  unless @flavor
    logger.error 'please set flavor'
    exit 1
  end
end
cheniu_prefix_gradle_build_path() click to toggle source
# File lib/flappy/util/build_apk.rb, line 62
def cheniu_prefix_gradle_build_path
  "#{@build_dir}/cheniu/build/outputs/apk"
end
gradle_build_path() click to toggle source
# File lib/flappy/util/build_apk.rb, line 54
def gradle_build_path
  "#{@build_dir}/build/outputs/apk"
end
initialize_apk_build_cmd() click to toggle source
# File lib/flappy/util/build_apk.rb, line 40
def initialize_apk_build_cmd
  check_build_gradle_exist

  cmd = "./gradlew build"
  cmd = "./gradlew #{@flavor}" unless @flavor.blank?
  cmd
end
initialize_get_dependencies_cmd() click to toggle source
# File lib/flappy/util/build_apk.rb, line 48
def initialize_get_dependencies_cmd
  #create dependencies.txt
  cmd = "./gradlew -q  app:dependencies --configuration compile >  #{@build_dir}/dependencies.txt"
  cmd
end
output_apk() click to toggle source
# File lib/flappy/util/build_apk.rb, line 66
def output_apk
  @builded_apk ||= Dir["#{gradle_build_path}/*.apk"].find { |i| i =~ /release/ ||i =~ /debug/}
  @builded_apk ||= Dir["#{prefix_gradle_build_path}/*.apk"].find { |i| i =~ /release/  || i =~ /debug/}
  @builded_apk ||= Dir["#{@build_dir}/*.apk"].find { |i| i =~ /release/ || i =~ /debug/ }
  @builded_apk ||= Dir["#{cheniu_prefix_gradle_build_path}/*.apk"].find { |i| i =~ /release/ || i =~ /debug/}

  check_no_output_apk

  apk_info = Flappy.apk_info(@builded_apk)

  # binding.pry
  @apk_name = @name.blank? ? "#{apk_info[:name]}-#{apk_info[:version]}" : @name

  @builded_app_path = "#{@build_dir}/#{@apk_name}.apk"
  FileUtils.cp(@builded_apk, @builded_app_path)
end
prefix_gradle_build_path() click to toggle source
# File lib/flappy/util/build_apk.rb, line 58
def prefix_gradle_build_path
  "#{@build_dir}/app/build/outputs/apk"
end
set_flavor(options) click to toggle source
# File lib/flappy/util/build_apk.rb, line 30
def set_flavor(options)
  unless options.flavor.blank?
    @flavor = options.flavor
    build_type = options[:debug] ? 'Debug' : 'Release'
    unless @flavor =~ /^assemble(.+)/
      @flavor = "assemble#{@flavor}#{build_type}"
    end
  end
end