Method: RunInBackground.prepare_argv

Defined in:
lib/run_in_background.rb

.prepare_argvObject

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