Skip to content

Instantly share code, notes, and snippets.

@nirenjan
Created January 23, 2013 05:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nirenjan/4602208 to your computer and use it in GitHub Desktop.
Save nirenjan/4602208 to your computer and use it in GitHub Desktop.
A utility script to test out dircolors settings without reloading LS_COLORS
#!/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 following lines, we don't care about them here
next if (($type eq 'TERM') || ($type eq 'COLOR') ||
($type eq 'OPTIONS') || ($type eq 'EIGHTBIT'));
# 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;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment