coderunner 0.11.23 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.11.23
1
+ 0.12.0
data/coderunner.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "coderunner"
8
- s.version = "0.11.23"
8
+ s.version = "0.12.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Edmund Highcock"]
12
- s.date = "2013-03-01"
12
+ s.date = "2013-03-08"
13
13
  s.description = "CodeRunner is a framework for the automated running and analysis of simulations. It automatically generates any necessary input files, organises the output data and analyses it. Because it is a modular system, it can easily be customised to work with any system and any simulation code. One of its greatest strengths is that it is independent of any one simulation code; thus it can easily plot and compare the data from different codes."
14
14
  s.email = "edmundhighcock@sourceforge.net"
15
15
  s.executables = ["coderunner"]
data/lib/coderunner.rb CHANGED
@@ -203,6 +203,7 @@ EOF
203
203
  ["code_runner_execute", "crex", 1, 'Run (within the CodeRunner class) the fragment of Ruby code given.', ['Ruby fragment'], []],
204
204
  ["delete", "del", 0, 'Permanently erase all filtered runs.', [], [:j, :F, :U, :N]],
205
205
  ["directory", "dir", 1, 'Print out the directory for the given run.', ['id'], []],
206
+ ['dumb_film', "dfm", 0, 'Create a film of the specified graphkits using gnuplot "dumb" ASCII terminal.', [], [:F, :G, :g, :U, :N, :j, :f]],
206
207
  ["execute", "ex", 1, 'Run (at the top level) the fragment of Ruby code given.', ['Ruby fragment'], []],
207
208
  ['film', "fm", 0, 'Create a film of the specified graphkits.', [], [:F, :G, :g, :U, :N, :j, :f]],
208
209
  ["generate_modlet_from_input_file", "gm", 1, 'Deprecated', [], []],
@@ -77,6 +77,28 @@ class CodeRunner
77
77
  runner.destroy
78
78
  end
79
79
 
80
+ def self.dumb_film(copts = {})
81
+ # process_copts(copts)
82
+ #old_term = GraphKit::GNUPLOT_DEFAULT_TERM
83
+ size = Terminal.terminal_size
84
+ size[0] -= 2
85
+ term = "dumb #{size.reverse.join(' ')}"
86
+ string = "\n" * size[0]
87
+
88
+ runner = fetch_runner(copts)
89
+ string_to_eval = copts[:w]
90
+ frame_array = copts[:F][:frame_array] || copts[:F][:fa]
91
+ index_name = copts[:F][:index_name] || copts[:F][:in]
92
+ #options = (options and options =~ /\S/) ? eval(options): {}
93
+ puts string
94
+ for index in frame_array[0]..frame_array[1]
95
+ string.true_lines.times{print "\033[A"}
96
+ kit = runner.graphkit_from_lists(copts[:G], copts[:g], index_name => index)
97
+ kit.gp.term = term
98
+ kit.gnuplot(eval: string_to_eval)
99
+ sleep(copts[:F][:fr] ? 1.0/copts[:F][:fr] : 0.1)
100
+ end
101
+ end
80
102
  # def self.executable_name # :nodoc:
81
103
  # ""
82
104
  # end
@@ -205,13 +227,17 @@ EOF
205
227
 
206
228
  end
207
229
 
230
+ def self.launcher_directory
231
+ ENV['HOME'] + "/.coderunner/to_launch/#{ENV['CODE_RUNNER_LAUNCHER']}"
232
+ end
208
233
  def self.start_launcher(refresh, max_queue, copts={})
209
234
  raise "Raise refresh is #{refresh}: it must be >= 1" if refresh.to_i < 1
210
235
  raise "Raise max_queue is #{max_queue}: it must be >= 5" if max_queue.to_i < 5
211
236
  #raise "Launcher already running" if %x[ps -e -o cmd].split("\n").grep(/coderunner\s+launch/).size > 0
212
237
  require 'thread'
213
- tl = ENV['HOME'] + "/.coderunner_to_launch_#{ENV['CODE_RUNNER_LAUNCHER']}" #SCRIPT_FOLDER + '/to_launch'
214
- exit unless Feedback.get_boolean( "Launch directory #{tl} already exists: it is suggested that you change the prefix by changing the environment variable CODE_RUNNER_LAUNCHER. Do you wish to continue (don't select yes unless you know what you are doing)?") if FileTest.exist? tl
238
+ tl = launcher_directory #SCRIPT_FOLDER + '/to_launch'
239
+ #exit unless Feedback.get_boolean( "Launch directory #{tl} already exists: it is suggested that you change the prefix by changing the environment variable CODE_RUNNER_LAUNCHER. Do you wish to continue (don't select yes unless you know what you are doing)?") if FileTest.exist? tl
240
+ raise "Launch directory #{tl} already exists: it is suggested that you change the prefix by changing the environment variable CODE_RUNNER_LAUNCHER. Do you wish to continue (don't select yes unless you know what you are doing)?" if FileTest.exist? tl
215
241
  # FileUtils.rm_r tl if FileTest.exist? tl
216
242
  eputs "Starting launcher\n"
217
243
  at_exit{FileUtils.rm_r tl}
@@ -240,17 +240,25 @@ class CodeRunner
240
240
 
241
241
  def read_folder_defaults
242
242
  # p @root_folder + '/.code_runner_script_defaults.rb'
243
- Hash.phoenix(@root_folder + '/.code_runner_script_defaults.rb') do |hash|
244
- # ep hash
243
+ if ENV['CODE_RUNNER_READONLY_DEFAULTS']
244
+ hash = eval(File.read(@root_folder + '/.code_runner_script_defaults.rb'))
245
245
  FOLDER_DEFAULTS.each do |var|
246
- # p send(var), hash[var]
247
- hash[var] = (send(var) or hash[var])
248
- hash[:code_runner_version] ||= CodeRunner::CODE_RUNNER_VERSION.to_s
249
- set(var, hash[var])
246
+ set(var, hash[var]) if hash[var]
247
+ end
248
+ else
249
+
250
+ Hash.phoenix(@root_folder + '/.code_runner_script_defaults.rb') do |hash|
251
+ # ep hash
252
+ FOLDER_DEFAULTS.each do |var|
253
+ # p send(var), hash[var]
254
+ hash[var] = (send(var) or hash[var])
255
+ hash[:code_runner_version] ||= CodeRunner::CODE_RUNNER_VERSION.to_s
256
+ set(var, hash[var])
257
+ end
258
+ @start_id = hash[:start_id] if hash[:start_id]
259
+ # ep "start_id: #@start_id"
260
+ hash
250
261
  end
251
- @start_id = hash[:start_id] if hash[:start_id]
252
- # ep "start_id: #@start_id"
253
- hash
254
262
  end
255
263
 
256
264
  raise "No default information exists for this folder. If you are running CodeRunner from the commmand line please run again with the -C <code> and -X <executable> (and -m <modlet>, if required) flag (you only need to specify these flags once in each folder). Else, please specify :code and :executable (and :modlet if required) as options in CodeRunner.new(folder, options)" unless @code and @executable
@@ -41,7 +41,7 @@ def execute
41
41
  # pid = spawn("trap '' 2 && trap '' 0 && " + run_command + " & ")
42
42
  if prefix = ENV['CODE_RUNNER_LAUNCHER']
43
43
  launch_id = "#{Time.now.to_i}#{$$}"
44
- fname = ENV['HOME'] + "/.coderunner_to_launch_#{prefix}/#{launch_id}"
44
+ fname = CodeRunner.launcher_directory + "/#{launch_id}"
45
45
  File.open(fname + '.start', 'w'){|file| file.puts "cd #{Dir.pwd};#{run_command}"}
46
46
  sleep 1 until FileTest.exist? fname + '.pid'
47
47
  pid = File.read(fname + '.pid').to_i
@@ -14,8 +14,8 @@ EOF
14
14
 
15
15
  def queue_status
16
16
  if ((prefix = ENV['CODE_RUNNER_LAUNCHER']).size > 0 rescue false)
17
- %x[cat #{ENV['HOME']}/.coderunner_to_launch_#{prefix}/queue_status.txt | grep sh] +
18
- %x[cat #{ENV['HOME']}/.coderunner_to_launch_#{prefix}/queue_status2.txt | grep sh]
17
+ %x[cat #{CodeRunner.launcher_directory}/queue_status.txt | grep sh] +
18
+ %x[cat #{CodeRunner.launcher_directory}/queue_status2.txt | grep sh]
19
19
  else
20
20
  %x[qstat | grep $USER]
21
21
  end
@@ -48,7 +48,7 @@ EOF
48
48
  def execute
49
49
  if ((prefix = ENV['CODE_RUNNER_LAUNCHER']).size > 0 rescue false)
50
50
  launch_id = "#{Time.now.to_i}#{$$}"
51
- fname = ENV['HOME'] + "/.coderunner_to_launch_#{prefix}/#{launch_id}"
51
+ fname = "#{CodeRunner.launcher_directory}/#{launch_id}"
52
52
  File.open(fname + '.start', 'w'){|file| file.print "cd #{Dir.pwd};", run_command, "\n"}
53
53
  sleep 2 until FileTest.exist? fname + '.pid'
54
54
  pid = File.read(fname + '.pid').to_i
@@ -107,7 +107,7 @@ EOF
107
107
 
108
108
  def cancel_job
109
109
  if ((prefix = ENV['CODE_RUNNER_LAUNCHER']).size > 0 rescue false)
110
- fname = ENV['HOME'] + "/.coderunner_to_launch_#{prefix}/#{$$}.stop"
110
+ fname = CodeRunner.launcher_directory + "/#{$$}.stop"
111
111
  File.open(fname, 'w'){|file| file.puts "\n"}
112
112
  else
113
113
  `qdel #{@job_no}`
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coderunner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.23
4
+ version: 0.12.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-01 00:00:00.000000000 Z
12
+ date: 2013-03-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: graphkit