Module: Flappy::BuildCommon

Included in:
Util::ClassMethods
Defined in:
lib/flappy/util/build_common.rb

Instance Method Summary collapse

Instance Method Details

#git_clone_build_dir(ssh_url, options) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/flappy/util/build_common.rb', line 26

def git_clone_build_dir(ssh_url, options)
  # project_name = File.basename(ssh_url, '.git')
  # now_time = Time.now.strftime('%Y%m%d%H%M%S')
  # work_space = "Flappy/Android/#{project_name}/#{now_time}"
  # code_name = "#{now_time}_#{project_name}_store";
  #
  # repo_name = work_space + "/#{code_name}"

  repo_name = File.basename(ssh_url, '.git') + "_#{Time.now.strftime('%Y%m%dT%H%M%S')}"
  branch = options[:branch].blank? ? 'master' : options[:branch]
  git_cmd = "git clone --depth=50 --branch=#{branch} #{ssh_url} #{repo_name}"

  logger.info git_cmd
  logger_info_dividing_line

  if system(git_cmd)
    File.absolute_path(repo_name)
  else
    logger.error 'Git clone failed'
    exit 1
  end
end

#initialize_build_common_options(args, options) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'lib/flappy/util/build_common.rb', line 4

def initialize_build_common_options(args, options)
  @build_dir     = initialize_build_dir(args, options)
  @output_path   = initialize_output_path(options)
  @token         = options[:firToken] || current_token
  @changelog     = options[:changelog].to_s
  @short         = options[:short].to_s
  @name          = options[:name].to_s
  @proj          = options[:proj].to_s
  @export_qrcode = options[:qrcode]
end

#initialize_build_dir(args, options) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/flappy/util/build_common.rb', line 15

def initialize_build_dir(args, options)
  build_dir = args.first.to_s
  if File.extname(build_dir) == '.git'
    args.shift && git_clone_build_dir(build_dir, options)
  elsif build_dir.blank? || !File.exist?(build_dir)
    Dir.pwd
  else
    args.shift && File.absolute_path(build_dir)
  end
end

#initialize_output_path(options) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/flappy/util/build_common.rb', line 49

def initialize_output_path(options)
  if options[:output].blank?
    output_path = "#{@build_dir}"
    FileUtils.mkdir_p(output_path) unless File.exist?(output_path)
    output_path
  else
    output_path = options[:output].to_s
    unless File.exist?(output_path)
      logger.warn "The output path not exist and flappy-cli will autocreate it..."
    end
    File.absolute_path(output_path)
  end
end

#logger_info_and_get_dependencies_command(cmd) ⇒ Object



82
83
84
85
86
# File 'lib/flappy/util/build_common.rb', line 82

def logger_info_and_get_dependencies_command(cmd)
  logger.info cmd
  logger_info_dividing_line
  logger.info `#{cmd}`
end

#logger_info_and_run_build_commandObject



68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/flappy/util/build_common.rb', line 68

def logger_info_and_run_build_command
  puts @build_cmd if $DEBUG

  logger.info 'Building......'
  logger_info_dividing_line

  logger.info `#{@build_cmd}`

  if $?.to_i != 0
    logger.error 'Build failed'
    exit 1
  end
end

#publish_build_app(options) ⇒ Object



63
64
65
66
# File 'lib/flappy/util/build_common.rb', line 63

def publish_build_app(options)
  logger_info_blank_line
  publish @builded_app_path, options
end