lib/coderunner/class_methods.rb in coderunner-0.14.24 vs lib/coderunner/class_methods.rb in coderunner-0.15.0

- old
+ new

@@ -612,11 +612,11 @@ # process_copts(copts) runner = fetch_runner(copts) # raise "something is already submitting" if FileTest.exist? "submitting" runs = [] raise "Parameters must be an array of inspected hashes" unless copts[:p].kind_of? Array - Dir.chdir(copts[:Y]) do + Dir.chdir(runner.root_folder) do copts[:p].push nil if copts[:p] == [] # ep copts[:p]; exit copts[:p].each do |pars| run = runner.run_class.new(runner) @@ -634,11 +634,11 @@ # process_copts(copts) runner = fetch_runner(copts) # raise "something is already submitting" if FileTest.exist? "submitting" runs = [] raise "Parameters must be an array of inspected hashes" unless copts[:p].kind_of? Array - Dir.chdir(copts[:Y]) do + Dir.chdir(runner.root_folder) do runs = runner.filtered_ids.map do |id| eputs id run = runner.run_list[id].dup run.output_file = nil run.error_file = nil @@ -793,44 +793,55 @@ copts[:h] = :real else copts[:h] = :real end +# ep Log.log_file + #copts[:code_copts].each{|k,v| CODE_OPTIONS[k] = v} if copts[:code_copts] + copts.keys.map{|k| k.to_s}.grep(/_options$/).map{|k| k.to_sym}.each do |k| + CODE_OPTIONS[k.to_s.sub('_options','').to_sym] = copts[k] + end + + + end + + # Analyse copts[:Y], the choice of the root folder for the runner, and make appropriate + # modifications to the command options for running remotely, etc. + def self.process_root_folder(copts) copts[:Y] ||= DEFAULT_COMMAND_OPTIONS[:Y] if DEFAULT_COMMAND_OPTIONS[:Y] + if copts[:Y] and copts[:Y].kind_of? Array + eputs "Warning: ignoring additional folders... selecting folder: #{copts[:Y]=copts[:Y][0]}" + end if copts[:Y] and copts[:Y] =~ /:/ set_class_defaults(copts) copts[:running_remotely] = true else copts[:Y] = copts[:Y].gsub(/~/, ENV['HOME']) if copts[:Y] Dir.chdir((copts[:Y] or Dir.pwd)) do set_runner_defaults(copts) # ep DEFAULT_RUNNER_OPTIONS end end -# ep Log.log_file - #copts[:code_copts].each{|k,v| CODE_OPTIONS[k] = v} if copts[:code_copts] - copts.keys.map{|k| k.to_s}.grep(/_options$/).map{|k| k.to_sym}.each do |k| - CODE_OPTIONS[k.to_s.sub('_options','').to_sym] = copts[k] - end - - end CODE_OPTIONS={} # Retrieve the runner with the folder (and possibly server) given in copts[:Y]. If no runner has been loaded for that folder, load one. def self.fetch_runner(copts={}) # ep copts + #read_default_command_options(copts) + process_command_options(copts) # If copts(:Y) is an array of locations, return a merged runner of those locations + #copts[:Y] ||= DEFAULT_COMMAND_OPTIONS[:Y] if DEFAULT_COMMAND_OPTIONS[:Y] if copts[:Y].kind_of? Array runners = copts[:Y].map do |location| new_copts = copts.dup.absorb(Y: location) fetch_runner(new_copts) end return Merged.new(*runners) end - process_command_options(copts) + process_root_folder(copts) #ep copts @runners ||= {} runner = nil if copts[:Y] and copts[:Y] =~ /:/ copts_r = copts.dup