[Bioperl-l] Your driver for 1.2

Ewan Birney birney@ebi.ac.uk
Thu, 22 Aug 2002 11:03:17 +0100 (BST)


Hi Bioperl - I will be your driver for 1.2 ;), taking over from Jason and 
so ....  all your blast bug belong to us


Rough plan:


   - Release another 1.1 series (developer release, all tests pass 
but no other guarentees) sometime Oct(ish)

   - Push for 1.2 late Oct/Nov, could slip if more new stuff comes in.

   - Coordinate with bioperl-db/biosql and bioperl-pipeline with a 
coordinated branch in all three projects which should remain compatible




Key things to do:


   - Overhaul docs, flatten the first couple of bumps for newbies

   - improve Bio::Perl (procedural Bioperl), point it out to newbies for 
an easy "just call functions" route into bioperl


   - put in ontology interface definitions (hoping Chris will do this,
otherwise I will), try to get SO to play well inside SeqIO (ha!)


   - remove all trace of Bio::Tools::BLAST, attempt to find and squash all
main Bio::SearchIO bugs before 1.2 out, refocus docs on Bio::SearchIO





For the moment, I am just starting into the bug list:


   Gary Williams' stuff - talked directly to Gary to get his fix
ported to the main trunk



   Kris - there are some StructureIO bugs filed - do you want to fix them 
or should I?



   Jason - for bug number 1224, which is a regex in IO.pm on windows
problem, I want to comment out the regex - why do we even need this regex 
(surely people wont be specifiying the executables as /execuable)?






This is my fix:



=head2 exists_exe

 Title   : exists_exe
 Usage   : $exists = $obj->exists_exe('clustalw');
           $exists = Bio::Root::IO->exists_exe('clustalw')
           $exists = Bio::Root::IO::exists_exe('clustalw')
 Function: Determines whether the given executable exists either as file
           or within the path environment. The latter requires File::Spec
           to be installed.
           On Win32-based system, .exe is automatically appended to the 
program
           name unless the program name already ends in .exe.
 Example :
 Returns : 1 if the given program is callable as an executable, and 0 
otherwise
 Args    : the name of the executable

=cut

sub exists_exe {
    my ($self, $exe) = @_;
    $exe = $self if(!(ref($self) || $exe));
    $exe .= '.exe' if(($^O =~ /mswin/i) && ($exe !~ /\.(exe|com|bat|cmd)$/i));
    return $exe if(-e $exe); # full path and exists

    # Ewan's comment. I don't think we need this. People should not be
    # asking for a program with a pathseparator starting it
    # $exe =~ s/^$PATHSEP//;


    # Not a full path, or does not exist. Let's see whether it's in the 
path.
    if($FILESPECLOADED) {
	foreach my $dir (File::Spec->path()) {
	    my $f = Bio::Root::IO->catfile($dir, $exe);	    
	    return $f if(-e $f );
	}
    }    
    return 0;
}





  







-----------------------------------------------------------------
Ewan Birney. Mobile: +44 (0)7970 151230, Work: +44 1223 494420
<birney@ebi.ac.uk>. 
-----------------------------------------------------------------