From 8d375c58a048400bc06ce223bbb3315060b3b471 Mon Sep 17 00:00:00 2001 From: martinahansen Date: Mon, 29 Apr 2013 09:52:27 +0000 Subject: [PATCH] fixed missing BP_TMP dir feature git-svn-id: http://biopieces.googlecode.com/svn/trunk@2167 74ccb610-7750-0410-82ae-013aeee3265d --- code_perl/Maasha/Biopieces.pm | 32 ++++++++++++++++++++++++------- code_ruby/lib/maasha/biopieces.rb | 2 ++ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/code_perl/Maasha/Biopieces.pm b/code_perl/Maasha/Biopieces.pm index 1d1ef65..434cdad 100644 --- a/code_perl/Maasha/Biopieces.pm +++ b/code_perl/Maasha/Biopieces.pm @@ -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 { diff --git a/code_ruby/lib/maasha/biopieces.rb b/code_ruby/lib/maasha/biopieces.rb index 1797d92..e51d538 100644 --- a/code_ruby/lib/maasha/biopieces.rb +++ b/code_ruby/lib/maasha/biopieces.rb @@ -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 -- 2.39.2