Class: Pindo::Command::Jps::Upload

Inherits:
Pindo::Command::Jps show all
Defined in:
lib/pindo/command/jps/upload.rb

Constant Summary

Constants inherited from Pindo::Command

DEFAULT_OPTIONS, DEFAULT_ROOT_OPTIONS

Instance Attribute Summary

Attributes inherited from Pindo::Command

#args_help_flag

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Pindo::Command

run, use_cache?

Methods included from Funlog::Mixin

#pindo_log_instance

Methods included from Pindoconfig::Mixin

#pindo_single_config

Methods included from Githelper

#add_branch, #add_tag, #add_tag_with_check, #clone_clang_repo, #clone_devclang_repo, #clone_pindo_common_config_repo, #clone_pindo_env_config_repo, #clong_buildconfig_repo, #get_repo_base_name, #getcode_to_dir, #git_addpush_repo, #git_latest_commit_id, #git_root_directory, #is_git_directory?, #local_branch_exists?, #local_tag_exists?, #prepare_gitenv, #process_need_add_files, #remote_branch_exists?, #remote_tag_exists?, #remove_branch, #remove_tag

Methods included from Executable

capture_command, #executable, execute_command, which, which!

Constructor Details

#initialize(argv) ⇒ Upload

Returns a new instance of Upload.



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/pindo/command/jps/upload.rb', line 66

def initialize(argv)

    @args_ipa_file = argv.shift_argument
    @ipa_file = argv.option('ipa')

    if !@ipa_file.nil?
        @args_ipa_file = @ipa_file
    end
    if @args_ipa_file && !@args_ipa_file.empty?
        @args_ipa_file = @args_ipa_file.strip.gsub(/\"/, '')
    end

     = argv.flag?('login', false)
    @args_send_flag = argv.flag?('send', false)
    @args_resign_flag = argv.flag?('resign', false)

    @args_proj_name = argv.option('proj')
    @args_attach_name = argv.option('attach')
    @args_upload_desc = argv.option('desc')
    @args_cert_id = argv.option('certid')



    if @args_upload_desc && !@args_upload_desc.empty?
        @args_upload_desc = @args_upload_desc.strip.gsub(/\"/, '')
    end


    if !@args_cert_id.nil? && !@args_cert_id.empty?
        @args_resign_flag = true
    end
    if @args_resign_flag
        @args_send_flag = true
    end

    super(argv)
    @additional_args = argv.remainder!
end

Class Method Details

.optionsObject



51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/pindo/command/jps/upload.rb', line 51

def self.options
  [
    ['--login', '强制再次登录jps网站,用法: pindo jps upload --login'],
    ['--ipa', '强制指定上传的ipa文件: pindo jps upload --ipa=path/to/demo.ipa'],
    ['--proj', '指定哪个项目(忽略大小写空格等等字符),用法:pindo jps upload --proj=prancksoundv4'],
    ['--attach', '指定需要和ipa一起上传的附件: pindo jps upload --attach=path/to/attach.zip'],
    ['--send',  '发送消息到项目群(注意:不带此参数也会发送给自己),用法:pindo jps upload --send'],
    ['--desc', '指定上传的备注信息: -pindo jps upload -desc="1.upload message"'],
    ['--resign',  '上传到之后是否重签名,用法:pindo jps upload --resign'],
    ['--certid',  '设置重签名的正式id,用法:pindo jps upload --certid=com.test.bundleid'],

  ].concat(super)
end

Instance Method Details

#runObject



110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/pindo/command/jps/upload.rb', line 110

def run
    current_project_dir = Dir.pwd

    # 创建任务列表
    tasks = make_upload_tasks(current_project_dir)

    # 执行任务
    task_manager = Pindo::TaskSystem::TaskManager.instance
    task_manager.clear_all
    tasks.each { |task| task_manager.add_task(task) }
    task_manager.start

    # 如果需要重签名,在所有上传任务完成后执行
    if @args_resign_flag
        args = []
        if @args_send_flag
            args << "--send"
        end
        if !@args_cert_id.nil? && !@args_cert_id.empty?
            args << "--certid=#{@args_cert_id}"
        end
        if !@args_proj_name.nil? && !@args_proj_name.empty?
            args << "--proj=#{@args_proj_name}"
        end
        Pindo::Command::Jps::Resign::run(args)
    end
end

#validate!Object



105
106
107
108
# File 'lib/pindo/command/jps/upload.rb', line 105

def validate!

    super
end