Class: CLIClassTool::Common

Inherits:
Object
  • Object
show all
Defined in:
lib/cli_class_tool/common.rb

Overview

Common utility class providing logging, configuration, and shell execution methods

Constant Summary collapse

ACTION_LIST =

List of available actions for this class

[ :list_actions ]
ACTION_HELP =

Help text for actions

{}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.inherited(subclass) ⇒ Object

Hook to enforce namespace loading at load time



7
8
9
10
11
12
13
14
# File 'lib/cli_class_tool/common.rb', line 7

def self.inherited(subclass)
    if subclass.name
        parts = subclass.name.to_s.split('::')
        if parts.size <= 1
            raise "CLIClassTool action classes must be defined within a named module/class namespace"
        end
    end
end

Instance Method Details

#list_actions(opts) ⇒ Integer

List available actions

Parameters:

  • opts (Hash)

    Options hash

Returns:

  • (Integer)

    0



184
185
186
187
# File 'lib/cli_class_tool/common.rb', line 184

def list_actions(opts)
    puts parent_module.getActionAttr("ACTION_LIST").map(){|x| parent_module.actionToString(x)}.join("\n")
    return 0
end

#run(cmd, check_err = true) ⇒ String

Run a shell command

Parameters:

  • cmd (String)

    Command to run

  • check_err (Boolean) (defaults to: true)

    Raise error on failure

Returns:

Raises:

  • (StandardError)

    If command fails and check_err is true



132
133
134
135
136
137
# File 'lib/cli_class_tool/common.rb', line 132

def run(cmd, check_err = true)
    cmd_debug('', cmd)
    ret = `cd #{@path} && #{cmd}`.chomp()
    abort_if_err(check_err, $?, ret)
    return ret
end

#runGit(cmd, opts = {}, check_err = true) ⇒ String

Run a git command

Parameters:

  • cmd (String)

    Git command arguments

  • opts (Hash) (defaults to: {})

    Options (e.g., :env)

  • check_err (Boolean) (defaults to: true)

    Raise error on failure

Returns:

Raises:

  • (StandardError)

    If command fails and check_err is true



159
160
161
162
163
164
# File 'lib/cli_class_tool/common.rb', line 159

def runGit(cmd, opts={}, check_err = true)
    cmd_debug('git', cmd)
    ret = `cd #{@path} && #{opts[:env]} git #{cmd}`.chomp()
    abort_if_err(check_err, $?, ret)
    return ret
end

#runGitInteractive(cmd, opts = {}, check_err = true) ⇒ Boolean

Run a git command interactively

Parameters:

  • cmd (String)

    Git command arguments

  • opts (Hash) (defaults to: {})

    Options (e.g., :env)

  • check_err (Boolean) (defaults to: true)

    Raise error on failure

Returns:

  • (Boolean)

    Command success status

Raises:

  • (StandardError)

    If command fails and check_err is true



173
174
175
176
177
178
# File 'lib/cli_class_tool/common.rb', line 173

def runGitInteractive(cmd, opts={}, check_err = true)
    cmd_debug('git interactive', cmd)
    ret = system("cd #{@path} && #{opts[:env]} git #{cmd}")
    abort_if_err(check_err, $?)
    return ret
end

#runSystem(cmd, check_err = true) ⇒ Boolean

Run a shell command using system() (interactive)

Parameters:

  • cmd (String)

    Command to run

  • check_err (Boolean) (defaults to: true)

    Raise error on failure

Returns:

  • (Boolean)

    Command success status

Raises:

  • (StandardError)

    If command fails and check_err is true



145
146
147
148
149
150
# File 'lib/cli_class_tool/common.rb', line 145

def runSystem(cmd, check_err = true)
    cmd_debug('interactive', cmd)
    ret = system("cd #{@path} && #{cmd}")
    abort_if_err(check_err, $?)
    return ret
end