]> git.donarmstrong.com Git - biopieces.git/commitdiff
fixed missing BP_TMP dir feature
authormartinahansen <martinahansen@74ccb610-7750-0410-82ae-013aeee3265d>
Mon, 29 Apr 2013 09:52:27 +0000 (09:52 +0000)
committermartinahansen <martinahansen@74ccb610-7750-0410-82ae-013aeee3265d>
Mon, 29 Apr 2013 09:52:27 +0000 (09:52 +0000)
git-svn-id: http://biopieces.googlecode.com/svn/trunk@2167 74ccb610-7750-0410-82ae-013aeee3265d

code_perl/Maasha/Biopieces.pm
code_ruby/lib/maasha/biopieces.rb

index 1d1ef65a5bc50695c1cf03f5da50c991b329a742..434cdad8cf738328478eba8a4d6a3e154a2824a2 100644 (file)
@@ -68,7 +68,7 @@ sub status_set
     $script     = Maasha::Common::get_scriptname();
     $pid        = Maasha::Common::get_processid();
 
-    $file = "$ENV{ 'BP_TMP' }/" . join( ".", $user, $script, $pid ) . ".status";
+    $file = bp_tmp() . "/" . join( ".", $user, $script, $pid ) . ".status";
     $fh   = Maasha::Filesys::file_write_open( $file );
     flock($fh, 2);
 
@@ -99,7 +99,7 @@ sub status_log
     $script     = Maasha::Common::get_scriptname();
     $pid        = Maasha::Common::get_processid();
 
-    $file = "$ENV{ 'BP_TMP' }/" . join( ".", $user, $script, $pid ) . ".status";
+    $file = bp_tmp() . "/" . join( ".", $user, $script, $pid ) . ".status";
 
     return if not -f $file;
 
@@ -784,7 +784,7 @@ sub clean_tmp
 
     my ( $tmpdir, @dirs, $curr_pid, $dir, $user, $sid, $pid );
 
-    $tmpdir = $ENV{ 'BP_TMP' } || Maasha::Common::error( 'No BP_TMP variable in environment.' );
+    $tmpdir = bp_tmp();
 
     $curr_pid = Maasha::Common::get_processid();
 
@@ -830,15 +830,13 @@ sub get_tmpdir
 
     my ( $user, $sid, $pid, $script, $path, $file, $fh, $line );
 
-    Maasha::Common::error( qq(no BP_TMP set in %ENV) ) if not -d $ENV{ 'BP_TMP' };
-
     $user   = Maasha::Common::get_user();
     $sid    = Maasha::Common::get_sessionid();
     $pid    = Maasha::Common::get_processid();
     $script = Maasha::Common::get_scriptname();
 
-    $path = "$ENV{ 'BP_TMP' }/" . join( "_", $user, $sid, $pid, "bp_tmp" );
-    $file = "$ENV{ 'BP_TMP' }/" . join( ".", $user, $script, $pid ) . ".status";
+    $path = bp_tmp() . "/" . join( "_", $user, $sid, $pid, "bp_tmp" );
+    $file = bp_tmp() . "/" . join( ".", $user, $script, $pid ) . ".status";
     
     $fh   = Maasha::Filesys::file_read_open( $file );
     flock($fh, 1);
@@ -887,6 +885,26 @@ sub biopiecesrc
     }
 }
 
+sub bp_tmp
+{
+    # Martin A. Hansen, March 2013.
+
+    # Returns the BP_TMP path.
+    # Errs if no BP_TMP in ENV and
+    # creates BP_TMP if it doesn't exists.
+
+    my ( $path );
+
+    Maasha::Common::error( qq(no BP_TMP set in %ENV) ) if not -d $ENV{ 'BP_TMP' };
+
+    $path = $ENV{ 'BP_TMP' };
+
+    unless ( -d $path ) { # No BP_TMP so we create it
+        mkdir $path or die qq(failed to create dir "$path": $!);
+    }   
+
+    return $path;
+}
 
 END
 {
index 1797d9211ed4e16ddcc1101b86d1170437ae314f..e51d53877185a7f97b157d27ad2bf9592bbbbf58 100644 (file)
@@ -31,6 +31,8 @@ require 'pp'
 require 'stringio'
 require 'zlib'
 
+BEGIN { Dir.mkdir ENV["BP_TMP"] unless File.directory? ENV["BP_TMP"] }
+
 TEST = false
 
 # Monkey patch (evil) changing the to_s method of the Hash class to