Class: ToolExecutorHelper
- Defined in:
- lib/ceedling/tool_executor_helper.rb
Overview
Helper functions for the tool executor
Instance Method Summary collapse
-
#background_exec_cmdline_append(tool_config) ⇒ Object
Returns the background execution append based on the config.
-
#background_exec_cmdline_prepend(tool_config) ⇒ Object
Returns the background execution prepend based on the config.
-
#osify_path_separators(executable) ⇒ Object
Modifies an executables path based on platform.
-
#print_error_results(command_str, shell_result, boom = true) ⇒ Object
Outputs failures results if command failed and we have verbosity set to minimum error level.
-
#print_happy_results(command_str, shell_result, boom = true) ⇒ Object
Outputs success results if command succeeded and we have verbosity cranked up.
-
#stderr_redirect_cmdline_append(tool_config) ⇒ Object
Returns the stderr redirect append based on the config.
-
#stderr_redirection(tool_config, logging) ⇒ Object
Returns the stderr redirection based on the config and logging.
Instance Method Details
#background_exec_cmdline_append(tool_config) ⇒ Object
Returns the background execution append based on the config.
Attributes
-
tool_config: A hash containing config information.
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/ceedling/tool_executor_helper.rb', line 100 def background_exec_cmdline_append(tool_config) return nil if (tool_config.nil? || tool_config[:background_exec].nil?) config_exec = tool_config[:background_exec] # if :auto & windows, then we already prepended 'start' and should append nothing return nil if ((config_exec == BackgroundExec::AUTO) and (@system_wrapper.windows?)) # if :auto & not windows, then we append standard '&' return '&' if ((config_exec == BackgroundExec::AUTO) and (not @system_wrapper.windows?)) # if explicitly Unix, then append '&' return '&' if (config_exec == BackgroundExec::UNIX) # * _command_str_: A hash containing config information. # all other cases, including :none, :win, & anything unrecognized, append nothing return nil end |
#background_exec_cmdline_prepend(tool_config) ⇒ Object
Returns the background execution prepend based on the config.
Attributes
-
tool_config: A hash containing config information.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/ceedling/tool_executor_helper.rb', line 34 def background_exec_cmdline_prepend(tool_config) return nil if (tool_config.nil? || tool_config[:background_exec].nil?) config_exec = tool_config[:background_exec] if ((config_exec == BackgroundExec::AUTO) and (@system_wrapper.windows?)) return 'start' end if (config_exec == BackgroundExec::WIN) return 'start' end return nil end |
#osify_path_separators(executable) ⇒ Object
Modifies an executables path based on platform.
Attributes
-
executable: The executable’s path.
57 58 59 60 |
# File 'lib/ceedling/tool_executor_helper.rb', line 57 def osify_path_separators(executable) return executable.gsub(/\//, '\\') if (@system_wrapper.windows?) return executable end |
#print_error_results(command_str, shell_result, boom = true) ⇒ Object
Outputs failures results if command failed and we have verbosity set to minimum error level.
Attributes
-
command_str: The command ran.
-
shell_results: The outputs of the command including exit code and
output.
-
boom: A boolean representing if a non zero result is erroneous.
150 151 152 153 154 155 156 157 158 159 160 161 162 163 |
# File 'lib/ceedling/tool_executor_helper.rb', line 150 def print_error_results(command_str, shell_result, boom=true) if ((shell_result[:exit_code] != 0) and boom) output = "ERROR: Shell command failed.\n" output += "> Shell executed command:\n" output += "'#{command_str}'\n" output += "> Produced output:\n" if (not shell_result[:output].empty?) output += "#{shell_result[:output].strip}\n" if (not shell_result[:output].empty?) output += "> And exited with status: [#{shell_result[:exit_code]}].\n" if (shell_result[:exit_code] != nil) output += "> And then likely crashed.\n" if (shell_result[:exit_code] == nil) output += "\n" @streaminator.stderr_puts(output, Verbosity::ERRORS) end end |
#print_happy_results(command_str, shell_result, boom = true) ⇒ Object
Outputs success results if command succeeded and we have verbosity cranked up.
Attributes
-
command_str: The command ran.
-
shell_results: The outputs of the command including exit code and
output.
-
boom: A boolean representing if a non zero result is erroneous.
128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/ceedling/tool_executor_helper.rb', line 128 def print_happy_results(command_str, shell_result, boom=true) if ((shell_result[:exit_code] == 0) or ((shell_result[:exit_code] != 0) and not boom)) output = "> Shell executed command:\n" output += "'#{command_str}'\n" output += "> Produced output:\n" if (not shell_result[:output].empty?) output += "#{shell_result[:output].strip}\n" if (not shell_result[:output].empty?) output += "> And exited with status: [#{shell_result[:exit_code]}].\n" if (shell_result[:exit_code] != 0) output += "\n" @streaminator.stdout_puts(output, Verbosity::OBNOXIOUS) end end |
#stderr_redirect_cmdline_append(tool_config) ⇒ Object
Returns the stderr redirect append based on the config.
Attributes
-
tool_config: A hash containing config information.
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 |
# File 'lib/ceedling/tool_executor_helper.rb', line 68 def stderr_redirect_cmdline_append(tool_config) return nil if (tool_config.nil? || tool_config[:stderr_redirect].nil?) config_redirect = tool_config[:stderr_redirect] redirect = StdErrRedirect::NONE if (config_redirect == StdErrRedirect::AUTO) if (@system_wrapper.windows?) redirect = StdErrRedirect::WIN elsif (@system_utils.tcsh_shell?) redirect = StdErrRedirect::TCSH else redirect = StdErrRedirect::UNIX end end case redirect # we may need more complicated processing after some learning with various environments when StdErrRedirect::NONE then nil when StdErrRedirect::WIN then '2>&1' when StdErrRedirect::UNIX then '2>&1' when StdErrRedirect::TCSH then '|&' else redirect.to_s end end |
#stderr_redirection(tool_config, logging) ⇒ Object
Returns the stderr redirection based on the config and logging.
Attributes
-
tool_config: A hash containing config information.
-
logging: A boolean representing if logging is enabled or not.
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/ceedling/tool_executor_helper.rb', line 16 def stderr_redirection(tool_config, logging) # if there's no logging enabled, return :stderr_redirect unmodified return tool_config[:stderr_redirect] if (not logging) # if there is logging enabled but the redirect is a custom value (not enum), return the custom string return tool_config[:stderr_redirect] if (tool_config[:stderr_redirect].class == String) # if logging is enabled but there's no custom string, return the AUTO enumeration so $stderr goes into the log return StdErrRedirect::AUTO end |