diff options
author | Zeus Panchenko <zeus@camb.us> | 2010-10-15 14:44:29 +0000 |
---|---|---|
committer | Zeus Panchenko <zeus@camb.us> | 2010-10-15 14:44:29 +0000 |
commit | dadfcb9f00e2a6a5ad8a1a5cd2fa42ea7da1d525 (patch) | |
tree | 7be9215a32411ea059a7fc67f985b5dac5844ba9 /rfile | |
parent | 9af0752f9971767f69d57ef822dc007de10fc15f (diff) | |
download | renrot-git-renrot_rfile.tar.gz renrot-git-renrot_rfile.tar.bz2 |
initial tree injectgit-renrot_rfile
git-svn-id: file:///svnroot/renrot/branches/renrot_rfile@594 fe2816f4-e837-0410-b10a-f608c9d244a1
Diffstat (limited to 'rfile')
-rwxr-xr-x | rfile | 83 |
1 files changed, 83 insertions, 0 deletions
@@ -0,0 +1,83 @@ +#!/usr/local/bin/perl + +use strict; +use warnings; +use diagnostics; + +use Getopt::Long; + +my @dir = (); +my $ext = q{}; +my $verbose = 3; +my %cfgOpts = ('use color' => 1); +my $quiet = 0; + +my $get_opt = GetOptions ( + "dir|d=s" => \@dir, + "ext|e=s" => \$ext, + "v+" => \$verbose, + ); + +require "modules/renrot_dir.pm"; +require "modules/renrot_msg.pm"; + +my $msg = new msg($cfgOpts{'use color'},$quiet,$verbose); + +if (not $ext) { + $msg->Fatal("You have define EXT!\n"); + exit 1; +} elsif ($ext !~ m/^\..*$/) { + $msg->Dbg(4, "ext:\t",$ext,"\n"); + $ext = "." . $ext; +} + +if (not @dir) { + @dir = ("."); +} + +use File::Find; +use File::Basename; + +my %dir_st = (); + +###################################################################### +# Usage : pars_files +# Purpose : to prepare hash of objects with file details +# Returns : none +# Parameters : none +# Throws : no exceptions +# Comments : it use global variables to fill +# See Also : package renrot_dir +sub pars_files { + my $EXT = (fileparse($File::Find::name, $ext))[2]; + if ( -f $File::Find::name and $EXT eq $ext) { + if (not $dir_st{$File::Find::dir}) { + $dir_st{$File::Find::dir} = new renrot_dir(); + $dir_st{$File::Find::dir}->{dir} = $File::Find::dir; + $dir_st{$File::Find::dir}->{ext} = $EXT; + } + push @{$dir_st{$File::Find::dir}->{files}}, basename($_,$EXT); + } +} + +find \&pars_files, @dir; + +my @files = (); +foreach my $dir (sort keys %dir_st) { + $msg->Proc("\nDIR: ", $dir, "\n"); + for (my $i = 0,@files = @{$dir_st{$dir}->{files}}; $i < scalar @files; $i++) { + $msg->Proc("\tFILE: ", $files[$i], "\t\tEXT: ", + $dir_st{$dir}->{ext}, "\t FULLNAME: ", + $dir_st{$dir}->file_name($files[$i],$dir_st{$dir}->{ext}),"\n"); + #if ( $i == 0 ) { + # chdir $dir_st{$dir}->{dir}; + #} + #open(FH, $dir_st{$dir}->file_name($files[$i],$dir_st{$dir}->{ext})) +# or die "Can't open ",$dir_st{$dir}->file_name($files[$i],$dir_st{$dir}->{ext}),": $!"; + #while (<FH>) { + # $msg->Proc( $_,"\n"); + #} + #close(FH); + } + undef @files; +} |