Method: RunInBackground.prepare_argv
- Defined in:
- lib/run_in_background.rb
.prepare_argv ⇒ Object
Prepare ARGV so it can be provided as a command line arguments. Remove bg_command from ARGV to prevent infinite recursion.
372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 |
# File 'lib/run_in_background.rb', line 372 def RunInBackground.prepare_argv new_argv = Array.new ARGV.each do |arg| # For each argument try splitting to 'name'='value' arg_arr = arg.split '=' # If no '=' is argument, just copy paste. if arg_arr.size == 1 arg = "\"#{arg}\"" if arg =~ / / new_argv << arg # If it is a 'name'='value' argument add "" so the value can be passed as argument again. elsif arg_arr.size == 2 # Skip bg_command flag (remove infinite recursion)! if arg_arr[0] !~ /bg_command/ arg_arr[1] = "\"#{arg_arr[1]}\"" if arg_arr[1] =~ / / new_argv << arg_arr.join('=') end else Log.warning("ARGV argument #{arg} wasn't processed") new_argv << arg end end ARGV.clear ARGV.concat new_argv end |