You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
7.4 KiB
158 lines
7.4 KiB
--- durep 2005-04-11 14:07:48.000000000 +0200
|
|
+++ durep_new 2005-04-11 14:08:27.000000000 +0200
|
|
@@ -14,6 +14,8 @@
|
|
#############################################################################
|
|
|
|
use Getopt::Long;
|
|
+use 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,
|
|
@@ -331,13 +336,117 @@
|
|
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 {
|
|
+ switch ($tmp[$#tmp]) {
|
|
+ #executable ( brigth gree)
|
|
+ case "cmd" { print BOLD, GREEN, $entry->{NAME}."\n", RESET }
|
|
+ case "exe" { print BOLD, GREEN, $entry->{NAME}."\n", RESET }
|
|
+ case "com" { print BOLD, GREEN, $entry->{NAME}."\n", RESET }
|
|
+ case "btm" { print BOLD, GREEN, $entry->{NAME}."\n", RESET }
|
|
+ case "bat" { print BOLD, GREEN, $entry->{NAME}."\n", RESET }
|
|
+ case "sh" { print BOLD, GREEN, $entry->{NAME}."\n", RESET }
|
|
+ case "csh" { print BOLD, GREEN, $entry->{NAME}."\n", RESET }
|
|
+
|
|
+ #archieves / compressed (brigth red)
|
|
+ case "tar" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "tgz" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "arj" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "taz" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "lzh" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "zip" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "z" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "Z" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "gz" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "bz2" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "tbz2" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "tz" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "deb" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "rpm" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "rar" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "ace" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "zoo" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "cpio" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "7z" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+ case "rz" { print BOLD, RED, $entry->{NAME}."\n", RESET }
|
|
+
|
|
+ #image formats
|
|
+ case "jpg" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "jpeg" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "gif" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "bmp" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "ppm" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "tga" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "xbm" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "xpm" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "tif" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "tiff" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "png" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "mng" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "xcf" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "pcx" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "mpg" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "mpeg" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "m2v" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "avi" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "mkv" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "ogm" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "mp4" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "mp4v" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "mov" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "qt" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "wmv" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "asf" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "rm" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "rmvb" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "flc" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "fli" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "gl" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+ case "dl" { print BOLD, MAGENTA, $entry->{NAME}."\n", RESET }
|
|
+
|
|
+ case "pdf" { print GREEN, $entry->{NAME}."\n", RESET }
|
|
+ case "ps" { print GREEN, $entry->{NAME}."\n", RESET }
|
|
+ case "txt" { print GREEN, $entry->{NAME}."\n", RESET }
|
|
+ case "patch" { print GREEN, $entry->{NAME}."\n", RESET }
|
|
+ case "diff" { print GREEN, $entry->{NAME}."\n", RESET }
|
|
+ case "log" { print GREEN, $entry->{NAME}."\n", RESET }
|
|
+ case "tex" { print GREEN, $entry->{NAME}."\n", RESET }
|
|
+ case "doc" { print GREEN, $entry->{NAME}."\n", RESET }
|
|
+
|
|
+ case "mp3" { print CYAN, $entry->{NAME}."\n", RESET }
|
|
+ case "wav" { print CYAN, $entry->{NAME}."\n", RESET }
|
|
+ case "mid" { print CYAN, $entry->{NAME}."\n", RESET }
|
|
+ case "midi" { print CYAN, $entry->{NAME}."\n", RESET }
|
|
+ case "au" { print CYAN, $entry->{NAME}."\n", RESET }
|
|
+ case "ogg" { print CYAN, $entry->{NAME}."\n", RESET }
|
|
+ case "flac" { print CYAN, $entry->{NAME}."\n", RESET }
|
|
+ case "aac" { print CYAN, $entry->{NAME}."\n", RESET }
|
|
+
|
|
+ else { 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);
|
|
|
|
@@ -437,6 +547,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
|