diff options
Diffstat (limited to 'app-admin/durep/files/durep-0.9-r4-color-output.patch')
-rw-r--r-- | app-admin/durep/files/durep-0.9-r4-color-output.patch | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/app-admin/durep/files/durep-0.9-r4-color-output.patch b/app-admin/durep/files/durep-0.9-r4-color-output.patch new file mode 100644 index 000000000000..6b8956199406 --- /dev/null +++ b/app-admin/durep/files/durep-0.9-r4-color-output.patch @@ -0,0 +1,98 @@ +--- durep ++++ durep +@@ -14,6 +14,8 @@ + ############################################################################# + + use Getopt::Long; ++use feature 'switch'; ++use Term::ANSIColor qw(:constants); + use File::Basename; + use MLDBM qw(DB_File Storable); + use Fcntl; +@@ -27,6 +29,7 @@ + our ($root_node, $filesystem_id, @stats); + our ($opt_help, $opt_version, $opt_textdepth, $opt_hidesize, $opt_showdate, $opt_nosort, $opt_quiet); + our ($opt_savefile, $opt_loadfile, $opt_desc, $opt_collate); ++our ($opt_nocolor); + our ($opt_files, $opt_onefilesystem, $opt_collapsepath, $opt_excludepath, $opt_coalescefiles); + our ($root_dir, $file_count, $dir_count, $next_id); + our ($TYPE_FILE, $TYPE_DIR, $TYPE_EMPTY, $TYPE_COALESCED, $TYPE_COLLAPSED); +@@ -56,6 +59,8 @@ + "d|desc=s" => \$opt_desc, + "c|collate=s" => \$opt_collate, + ++ "nc|nocolor" => \$opt_nocolor, ++ + "f|files" => \$opt_files, + "x|one-file-system" => \$opt_onefilesystem, + "cp|collapse-path=s" => \$opt_collapsepath, +@@ -332,13 +337,58 @@ + printf(" [%s%s] ", "#" x $numofchars, " " x (30-$numofchars)); + printf("%6.2f%% ", $percent); + printf("%s ", shortDate($entry->{MTIME})) if $opt_showdate; +- printf("%s%s\n", $entry->{NAME}, $entry->{TYPE} & $TYPE_DIR ? "/" : ""); ++ ++ printColor( $entry ) unless ( $opt_nocolor ); ++ printNoColor( $entry ) if ( $opt_nocolor ); + if($entry->{TYPE} & $TYPE_DIR) { + printDir($entry, $indent+1) if(!defined $opt_textdepth || ($opt_textdepth > $indent+1)); + } + } + } + ++sub printColor { ++ my $entry = shift; ++ ++ my @tmp = split /\./, $entry->{NAME}; ++ ++ if ( $entry->{TYPE} & $TYPE_DIR ) { ++ print BLUE, BOLD, $entry->{NAME}."/\n", RESET ++ } ++ else { ++ given ($tmp[$#tmp]) { ++ #executable (bright green) ++ when([ qw(cmd exe com btm bat sh csh) ]) { ++ print BOLD, GREEN, $entry->{NAME}."\n", RESET ++ } ++ #archives / compressed (bright red) ++ when([ qw(tar tgz arj taz lzh zip z Z gz bz2 tbz2 tz deb rpm rar ace zoo cpio 7z rz) ]) { ++ print BOLD, RED, $entry->{NAME}."\n", RESET ++ } ++ #image formats ++ when([ qw(jpg jpeg gif bmp ppm tga xbm xpm tif tiff png mng xcf pcx mpg mpeg m2v avi mkv ++ ogm mp4 mp4v mov qt wmv asf rm rmvb flc fli gl dl) ]) { ++ print BOLD, MAGENTA, $entry->{NAME}."\n", RESET ++ } ++ #misc. ++ when([ qw(pdf ps txt patch diff log tex doc) ]) { ++ print GREEN, $entry->{NAME}."\n", RESET ++ } ++ when([ qw(mp3 wav mid midi au ogg flac aac) ]) { ++ print CYAN, $entry->{NAME}."\n", RESET ++ } ++ default { ++ print $entry->{NAME}."\n", RESET ++ } ++ } ++ } ++} ++ ++sub printNoColor { ++ my $entry = shift; ++ ++ printf("%s%s\n", $entry->{NAME}, $entry->{TYPE} & $TYPE_DIR ? "/" : ""); ++} ++ + sub processSizeOption { + my ($size, $temp); + +@@ -438,6 +488,9 @@ + -d, --desc=<description> give description of save file + -c, --collate=<dir> collate save files in dir for web report + ++Color Option: ++ -nc, --nocolor no color output ++ By default durep color outpu + Inclusion Options: + -f, --files do not descend into subdirs, only report files + -x, --one-file-system do not traverse file systems |