Class: Pindo::Command::Jps::Bind

Inherits:
Pindo::Command::Jps show all
Defined in:
lib/pindo/command/jps/bind.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) ⇒ Bind

Returns a new instance of Bind.



50
51
52
53
54
55
56
57
58
59
# File 'lib/pindo/command/jps/bind.rb', line 50

def initialize(argv)
    @args_proj_name = argv.option('proj')
    @args_workflow_name = argv.option('workflow')
    @args_list_flag = argv.flag?('list', false)
    @args_unbind_flag = argv.flag?('unbind', false)
    @args_status_flag = argv.flag?('status', false)

    super
    @additional_args = argv.remainder!
end

Class Method Details

.optionsObject



40
41
42
43
44
45
46
47
48
# File 'lib/pindo/command/jps/bind.rb', line 40

def self.options
  [
    ['--proj', '指定要绑定的项目名称'],
    ['--workflow', '指定要绑定的工作流名称'],
    ['--list', '列出所有可用的工作流'],
    ['--unbind', '解除包与工作流的绑定'],
    ['--status', '查看当前绑定状态']
  ].concat(super)
end

Instance Method Details

#runObject



73
74
75
76
77
78
79
80
81
82
83
# File 'lib/pindo/command/jps/bind.rb', line 73

def run
    if @args_list_flag
        list_workflows
    elsif @args_status_flag
        show_bind_status
    elsif @args_unbind_flag
        unbind_workflow
    else
        bind_to_workflow
    end
end

#validate!Object



61
62
63
64
65
66
67
68
69
70
71
# File 'lib/pindo/command/jps/bind.rb', line 61

def validate!
    super
    if @args_list_flag || @args_status_flag
        # 列出或查看状态时不需要其他参数
        return
    end

    if @args_unbind_flag && @args_workflow_name.nil?
        help! '解除绑定时需要指定工作流名称'
    end
end