OSDN Git Service

GAMESS execution from Ruby script is improved (not quite well yet)
authortoshinagata1964 <toshinagata1964@a2be9bc6-48de-4e38-9406-05402d4bc13c>
Thu, 10 Apr 2014 11:12:52 +0000 (11:12 +0000)
committertoshinagata1964 <toshinagata1964@a2be9bc6-48de-4e38-9406-05402d4bc13c>
Thu, 10 Apr 2014 11:12:52 +0000 (11:12 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/molby/trunk@526 a2be9bc6-48de-4e38-9406-05402d4bc13c

Scripts/gamess.rb
Scripts/md.rb
Scripts/startup.rb

index d99c3b1..c29b249 100755 (executable)
@@ -138,13 +138,13 @@ class Molecule
       end
     end
 
-       if mol == nil
-               mol = Molecule.open(inpname)
-               if mol == nil
-                       error_message_box("Cannot open #{inpname} as GAMESS input")
-                       return
-               end
-       end
+#      if mol == nil
+#              mol = Molecule.open(inpname)
+#              if mol == nil
+#                      error_message_box("Cannot open #{inpname} as GAMESS input")
+#                      return
+#              end
+#      end
        
     inpbase = File.basename(inpname)
     inpdir = File.dirname(inpname)
@@ -413,7 +413,9 @@ class Molecule
            end
          }
          erase_old_logs(scrdir, "latest", 5)
-         message_box(msg, hmsg, :ok, icon)
+         if mol != nil
+           message_box(msg, hmsg, :ok, icon)
+      end
     }
        
     timer_callback = lambda { |m, n|
@@ -491,7 +493,8 @@ class Molecule
          end
        else
          pid = call_subprocess(cmdline, "Running GAMESS")
-         term_callback(nil, pid)
+         term_callback.call(nil, pid)
+         return pid
        end
 
   end
index edd0766..aec1ce4 100755 (executable)
@@ -394,39 +394,6 @@ class Molecule
        return count
   end
   
-  def remove_dir(dir)
-    entries = Dir.entries(dir)
-       entries.each { |en|
-         next if en == "." || en == ".."
-         fname = "#{dir}/#{en}"
-         if File.directory?(fname)
-           remove_dir(fname)
-         else
-           File.unlink(fname)
-         end
-       }
-       Dir.unlink(dir)
-  end
-  
-  def erase_old_logs(tdir, level, keep_number)
-    log_dir = File.dirname(tdir)
-       if level == nil || level == "none"
-         remove_dir(tdir)
-       elsif level == "latest"
-         if keep_number == nil
-           keep_number = 5
-         else
-           keep_number = keep_number.to_i
-         end
-         entries = Dir.entries(log_dir).select { |en| en != "." && en != ".." && File.directory?("#{log_dir}/#{en}") }
-         #  Sort by modification date
-         entries = entries.sort_by { |en| File.mtime("#{log_dir}/#{en}").to_i }
-         (0...entries.count - keep_number).each { |i|
-           remove_dir("#{log_dir}/#{entries[i]}")
-         }
-       end
-  end
-  
   def invoke_antechamber(ask_options = true, msg = nil)
     #  Find the ambertool directory
        ante_dir = "#{ResourcePath}/amber11/bin"
index 06f7fb7..9f13e7e 100755 (executable)
@@ -160,6 +160,40 @@ module Kernel
          }
        end
   end
+
+  def remove_dir(dir)
+    entries = Dir.entries(dir)
+       entries.each { |en|
+         next if en == "." || en == ".."
+         fname = "#{dir}/#{en}"
+         if File.directory?(fname)
+           remove_dir(fname)
+         else
+           File.unlink(fname)
+         end
+       }
+       Dir.unlink(dir)
+  end
+  
+  def erase_old_logs(tdir, level, keep_number)
+    log_dir = File.dirname(tdir)
+       if level == nil || level == "none"
+         remove_dir(tdir)
+       elsif level == "latest"
+         if keep_number == nil
+           keep_number = 5
+         else
+           keep_number = keep_number.to_i
+         end
+         entries = Dir.entries(log_dir).select { |en| en != "." && en != ".." && File.directory?("#{log_dir}/#{en}") }
+         #  Sort by modification date
+         entries = entries.sort_by { |en| File.mtime("#{log_dir}/#{en}").to_i }
+         (0...entries.count - keep_number).each { |i|
+           remove_dir("#{log_dir}/#{entries[i]}")
+         }
+       end
+  end
+  
 end
 
 class IO