]> git.donarmstrong.com Git - biopieces.git/blobdiff - code_perl/Maasha/Filesys.pm
finish assemble_pairs revamp
[biopieces.git] / code_perl / Maasha / Filesys.pm
index 481cefd55abcf146d02dab17f04a8aba0b202b26..5c26fdd777471965af6d60c1f9e90a2b44ee5927 100644 (file)
@@ -35,6 +35,7 @@ use IO::File;
 use Storable;
 use Data::Dumper;
 use Maasha::Common;
+use Digest::MD5;
 
 use Exporter;
 
@@ -309,6 +310,31 @@ sub file_size
 }
 
 
+sub file_md5
+{
+    # Martin A. Hansen, December 2009.
+
+    # Get an MD5 sum for a given file.
+
+    my ( $file,   # file path
+       ) = @_;
+
+    # Returns a string.
+
+    my ( $fh, $md5 );
+
+    $fh = file_read_open( $file );
+
+    $md5 = Digest::MD5->new;
+
+    $md5->addfile( $fh );
+
+    close $fh;
+
+    return $md5->hexdigest;
+}
+
+
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DIRECTORIES <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
@@ -387,10 +413,39 @@ sub ls_dirs
 
     close $dh;
 
+    @dirs = sort @dirs;
+
     return wantarray ? @dirs : \@dirs;
 }
 
 
+sub ls_dirs_base
+{
+    # Martin A. Hansen, November 2009.
+
+    # Returns all directory basenames execpt . and ..
+    # from a given directory.
+
+    my ( $path,
+       ) = @_;
+
+    # Returns a list.
+
+    my ( @dirs, $dir, @list );
+
+    @dirs = Maasha::Filesys::ls_dirs( $path );
+
+    foreach $dir ( @dirs )
+    {
+        next if $dir =~ /\/\.\.?$/;
+
+        push @list, ( split "/", $dir )[ -1 ];
+    }
+
+    return wantarray ? @list : \@list;
+}
+
+
 sub ls_files
 {
     # Martin A. Hansen, June 2007.