summaryrefslogtreecommitdiff
path: root/lib/sbin/ThornUtils.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sbin/ThornUtils.pm')
-rw-r--r--lib/sbin/ThornUtils.pm31
1 files changed, 14 insertions, 17 deletions
diff --git a/lib/sbin/ThornUtils.pm b/lib/sbin/ThornUtils.pm
index 845010dd..acbdca0b 100644
--- a/lib/sbin/ThornUtils.pm
+++ b/lib/sbin/ThornUtils.pm
@@ -1,6 +1,5 @@
package ThornUtils;
-
my $parskip_set = "0pt";
my $parskip_restore = "10pt";
@@ -73,29 +72,27 @@ sub CreateThornlist
#@@*/
sub FindDirectories
{
- my ($directory) = shift;
-
- my (@directories);
-
- chdir ($start_directory) || die "\nCannot change directory to $start_directory: $!";
+ my $directory = shift;
- chdir($directory) || die "\nCannot change directory to $directory: $!";
+ my @directories;
+ my $dirhdl;
- open(LS, "ls -F|");
+ opendir ($dirhdl, $directory)
+ or die "\nCannot open directory $directory\n";
- while( chomp($name = <LS>))
+ while (defined (my $name = readdir($dirhdl)))
{
- next if ((! -d $name) || ($name eq "History/") || ($name eq "CVS/"));
-
- $name =~ s/\/$//;
- push(@directories, $name);
+ if ((-d "$directory/$name")
+ && ($name ne 'History') && ($name ne 'CVS')
+ && !($name =~ /^\./) ) # i.e. current, parent & hidden dirs
+ {
+ push(@directories, $name);
+ }
}
- close(LS);
-
- chdir ($start_directory) || die "\nCannot change directory to $start_directory: $!";
+ closedir $dirhdl;
- return (@directories);
+ return @directories;
}
#/*@@