mirror of https://github.com/nirenjan/dotfiles.git
				
				
				
			Add script to test dircolors file
This Perl script reads a valid dircolors configuration file and prints the colorscheme used by 'ls --color' for each file type (and extension). Error checking is non-existent. The script assumes that your dircolors file is valid input for the dircolors program.master
							parent
							
								
									6560b0050d
								
							
						
					
					
						commit
						26e51adc9f
					
				| 
						 | 
					@ -0,0 +1,55 @@
 | 
				
			||||||
 | 
					#!/usr/bin/perl
 | 
				
			||||||
 | 
					# A utility script to test out dircolors settings without reloading
 | 
				
			||||||
 | 
					# Usage: dircolortest <dircolors file>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if ($#ARGV < 0) {
 | 
				
			||||||
 | 
					    die "Usage: $0 <dircolors file>\n";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if ($#ARGV > 0) {
 | 
				
			||||||
 | 
					    warn "Ignoring additional command line arguments\n";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Open the file and get the handle
 | 
				
			||||||
 | 
					open DCFILE, $ARGV[0] or
 | 
				
			||||||
 | 
					    die "Cannot open dircolors file $ARGV[0]! $!\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$line_counter = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					while ($line = <DCFILE>) {
 | 
				
			||||||
 | 
					    chomp $line;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Strip off any comments
 | 
				
			||||||
 | 
					    $line =~ s/#.*$//;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Strip off leading and trailing whitespace
 | 
				
			||||||
 | 
					    $line =~ s/^\s*//;
 | 
				
			||||||
 | 
					    $line =~ s/\s*$//;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if ($line ne '') {
 | 
				
			||||||
 | 
					        ($type, $format) = split /\s+/, $line;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Ignore the TERM lines, we don't care about them here
 | 
				
			||||||
 | 
					        next if ($type eq 'TERM');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Just a little enhancement, if the type begins with a .
 | 
				
			||||||
 | 
					        if ($type =~ m/^\./) {
 | 
				
			||||||
 | 
					            $type = "*$type";
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        print "\033[${format}m$type\033[m";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $line_counter = $line_counter + 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ($line_counter == 8) {
 | 
				
			||||||
 | 
					            print "\n";
 | 
				
			||||||
 | 
					            $line_counter = 0;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            print "\t";
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					print "\n" if ($line_counter != 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					close DCFILE;
 | 
				
			||||||
		Loading…
	
		Reference in New Issue