App-diroctopus
view release on metacpan or search on metacpan
given ( $o{d} ) {
push @ret , join "+" , $ddirs , scalar @files - $ddirs when /d/i && /f/i ;
push @ret , $ddirs when /d/i ;
push @ret , scalar @files - $ddirs when /f/i ;
}
push @ret , sum0 map { -s "$dirname$I$_" } @files if $o{d} =~ m/s/i ;
return join ":" , @ret ; #, sum0 map { -s "$_[0]$I$_" } @files ;
}
# ãã£ãªã¯ããªåã®é£çµãããã¹åãããããããã®ãã£ã¬ã¯ããªã«ãä»å±ãããã£ã¬ã¯ããªã®æ°ãæ°ãã
sub path2dnum ( $ $ ) {
my @f = splitdir $_[0] ;
my $tdir = "." ;
if ( exists $o{d} ) {
for ( @f ) {
$tdir .= $I . $_ ;
my $dnum = dirfinum ( $tdir ) ;
$_ .= FAINT "($dnum)" ;
}
}
#* YELLOW = sub { BRIGHT_YELLOW @_ } ;
$f[ - $_[1] ] = YELLOW $f[ - $_[1] ] if $o{y} eq '1' ;
grep { $f[ $_ ] = YELLOW $f[ $_ ] } -$_[1] .. -1 if $o{y} eq '2' ;
join $I , @f ;
}
sub main () {
# ãããã®åºå
my @header ;
push @header , "Distance" ;
push @header , "Directory_path" ;
push @header , "File_number" , "File_bytesize_sum" if ! exists $o{d} ;
say UNDERLINE join "\t" , @header ;
$root -> build_recursive ( "." , 0 ) ; # 第äºå¼æ° my $depth = 0 ;
$root -> shrink_recursive if $o{S} ;
my $first ; # æåã®ãã£ã¬ã¯ããªã«ç¸å½ããã¤ã³ã¹ã¿ã³ã¹
my $furthest ; # æãé¢ããã¤ã³ã¹ã¿ã³ã¹
my $distance ; # ãã®æãé¢ããè·é¢ãæ ¼ç´
my $path ; # ãã£ã¬ã¯ããªåã®ãã¹
$first = $root -> {children}[0];
for ( 1 .. $o{g} ) {
$furthest = $first -> scan ;
$distance = $furthest -> {farness} ;
$path = $furthest -> pathProc ;
my $steps = splitdir $path ;
last if $distance < $o{l} ;
my @lf = leafs $path if ! exists $o{d} ;
#say CYAN "$furthest->{name}, $distance, $path" ;
my $decopath = path2dnum ( $path , $distance ) ;#if defined $o{d} ; #&& $o{d} == 1 ;
do { say join "\t" , (int $distance).(FAINT "/".$steps ) , $decopath.$I, @lf ; $OutRec ++ }
}
# ã¡ã¤ã³ã®å¾ã®åºå
* REVERSE = sub { @_ } ;
print STDERR " -- " ;
print STDERR BOLD " NO OUTPUT RECORD ! -- " if $OutRec == 0 ;
print STDERR REVERSE ITALIC " Output records: " , CLEAR " $OutRec " ;
print STDERR " " , REVERSE ITALIC " Used random seed: " , CLEAR " $o{s} " ;
say STDERR " " , REVERSE ITALIC " Process time: " , CLEAR " " , ( tv_interval $time_start , [ gettimeofday ] ) , " second(s)." ;
}
## ãã«ãã®æ±ã
sub VERSION_MESSAGE {}
sub HELP_MESSAGE {
use FindBin qw[ $Script ] ;
$ARGV[1] //= '' ;
open my $FH , '<' , $0 ;
while(<$FH>){
s/\$0/$Script/g ;
print $_ if s/^=head1// .. s/^=cut// and $ARGV[1] =~ /^o(p(t(i(o(ns?)?)?)?)?)?$/i ? m/^\s+\-/ : 1;
}
close $FH ;
exit 0 ;
}
=encoding utf8
=head1
ã$0 [dirname]
主è¦ãªæ©è½:
ãã®ä¸ã®é層ãã¡ã«å¤æ°ã®ãã¡ã¤ã«ãæã¤ãã£ã¬ã¯ããªã«å¯¾ãã¦ããã®æ§é ãææ¡ããããã«ã¤ããã
ä¸ãããããã£ã¬ããªã®ä¸ã®ãã£ã¬ã¯ããªå
¨ã¦ã«å¯¾ãã¦ãããããæ¨æ§é ã¨è¦ãªããæåã«ä¸ãã
ãã£ãªã¯ããªã¯ãã®æ¨æ§é ã®ã«ã¼ã(æ ¹)ã¨è¦ãªããæ¢ç´¢ãããã£ã¬ã¯ããªããã®æ¨æ§é ã®ãã¼ã(é ç¹)ã¨è¦ãªãã
ããã¦ãä¸è¨ã®è¨ç®ãå復ããã
1. æãæ·±ã(æãä¸ã«ãã)ãã£ã¬ã¯ããªãæåã«æ¢ãåºãã
2. ããã«å¯¾å¿ããé ç¹ããæ ¹ã¾ã§ã®çµè·¯ãããæãé ãé ç¹ã«ç¸å½ãããã£ã¬ã¯ããªãæ¢ãåºãã
3. æ¢ã«æ¢ãåºããå
¨ã¦ã®ããããã®é ç¹ããæ ¹ã¾ã§ã®çµè·¯ãããåæ§ã«æãé ããã®ãæ¢ãåºãã
4. å復çã«3.ãå¿
è¦ãªåæ°ã«éããã¾ã§ç¹°ãè¿ãã
è£è¶³: æ¢ãåºãé ç¹ã¯ã夿°ããä¸ãã1ã¤ãé¸ã¶ããç確çã«ã©ã³ãã ã«é¸ã¶ã
ãªãã·ã§ã³:
-. 0 : ããªãªãã§ãã¡ã¤ã«åãå§ã¾ãé ããã¡ã¤ã«ã¯æ¢ç´¢ããªãã
-g N : æå¤§éNåãæ¢ãåºããã¨ã¨ããã
-l N : æ¢ç´¢ãç¶ããéã«ãé ãã®æå°éãè¨å®ããã
-s N : ä¹±æ°ã·ã¼ããNã«è¨å®ããã
-d str : strã®å¤ã«ãããåºåãããã¹ã«ç¾ããåãã£ã¬ã¯ããªã«æ¬¡ã®è£å©æ
å ±ãæ¬å¼§å
ã«è¿½å ã
-d d : ãã®ä¸ã®ãã£ã¬ã¯ããªã®åæ°ãåºåã
-d f : ãã®ä¸ã®ãã£ã¬ã¯ããªä»¥å¤ã®ãã¡ã¤ã«ã®åæ°ãåºåã
-d s : ãã®ä¸ã®ãã£ã¬ã¯ããªã«ãããã¡ã¤ã«ã®ãã¤ããµã¤ãºã®åè¨ãåºåã
-d D : ãã®ä¸ã®ãã£ã¬ã¯ããªã®ç´ä¸ã«ãããã£ã¬ã¯ããªã®åæ°ãåºåã(å
å¼ãã£ã¬ã¯ããªã«ç¸å½)
-d F : ãã®ä¸ã®ãã£ã¬ã¯ããªã®ç´ä¸ã«ããããã£ã¬ã¯ããªä»¥å¤ã®ãã¡ã¤ã«ã®åæ°ãåºåã
-y N : Nã®å¤ã«ããï¼åºåãããã¹ã®é¨åçãªå¼·èª¿ã®ããæ¹ã«é¢ãã¦ä¸è¨ã®ç°ãªãåä½ãããã
-y 0 : çè²ãããªãã
-y 1 : åå²ã®çºçãããã£ã¬ã¯ããªã®1ç®æã®ã¿ãæããè²ã§å¼·èª¿ããã(åæè¨å®)
-y 2 : åå²ã®çºçãããã£ã¬ã¯ããªç®æããä¸ãå
¨ã¦æããè²ã§å¼·èª¿ããã
-x DIRNAME ; ãã£ã¬ã¯ããªåããªãã·ã§ã³ä¸ã§æå®ãã
-L ã·ã³ããªãã¯ãªã³ã¯ã«é¢ããå¦ç (辿ãããã«ãã)
éçºä¸ã®ã¡ã¢
* åæåæã«ãblessã®åã«ã$x->{name}ããã¾ããããªãã£ãã
* $first ã $root ããåããå¿
è¦ããã£ãã®ã
* given ã使ã£ããã¨
* å
·ä½çãªãã¡ã¤ã«å -f ã§ã
* (ä¹±æ°ã®å©ç¨ã®æé©ã -- æ¯è¼ãã MSã½ããã§)
* ( æé è·é¢ã®çãããã®ã夿°ããã°ããã«ãåºååªå
é ä½ãèããæ¹ãè¯ãããã)
* (ã©ã³ãã ã«ãªã£ã¦ãªã!?)
* -h Nãå®è£
ãããã
* -S ã§ ç´ä¸ã«ãã¡ã¤ã«ããã£ã1åã®ãã£ã¬ã¯ããªãããªãå ´åã«ã縮ãããã¨ããããã¨ããããåä»ã
( run in 0.694 second using v1.01-cache-2.11-cpan-13bb782fe5a )