pf-tools/pf-tools: Adding pretty colors for diff output
parmelan-guest at users.alioth.debian.org
parmelan-guest at users.alioth.debian.org
Wed Aug 21 16:46:29 UTC 2013
details: http://hg.debian.org/hg/pf-tools/pf-tools/rev/1bafb119e83d
changeset: 1202:1bafb119e83d
user: Richard Phan
date: Wed Aug 21 18:46:08 2013 +0200
description:
Adding pretty colors for diff output
diffstat:
lib/PFTools/Update/ADDFILE.pm | 7 +++++--
lib/PFTools/Update/Common.pm | 27 +++++++++++++++++++++++++++
2 files changed, 32 insertions(+), 2 deletions(-)
diffs (69 lines):
diff -r 3ab3c64672d3 -r 1bafb119e83d lib/PFTools/Update/ADDFILE.pm
--- a/lib/PFTools/Update/ADDFILE.pm Tue Aug 20 15:23:56 2013 +0200
+++ b/lib/PFTools/Update/ADDFILE.pm Wed Aug 21 18:46:08 2013 +0200
@@ -122,11 +122,14 @@
Log("(action needed)");
}
if ( $options->{'diff'} ) {
+ my @diff;
if ( !-e $dest ) {
- print diff ( [], $tmp, { STYLE => "Unified" } );
+ @diff = split qq{\n}, diff( [], $tmp, {STYLE => "Unified"} );
+ print_diff_color( @diff );
}
else {
- print diff ( $dest, $tmp, { STYLE => "Unified" } );
+ @diff = split qq{\n}, diff( $dest, $tmp, {STYLE => "Unified"} );
+ print_diff_color( @diff );
}
}
print "on_config ...\n";
diff -r 3ab3c64672d3 -r 1bafb119e83d lib/PFTools/Update/Common.pm
--- a/lib/PFTools/Update/Common.pm Tue Aug 20 15:23:56 2013 +0200
+++ b/lib/PFTools/Update/Common.pm Wed Aug 21 18:46:08 2013 +0200
@@ -26,6 +26,7 @@
use English qw( -no_match_vars ); # Avoids regex performance penalty
use File::Copy;
use File::Path qw( make_path );
+use Term::ANSIColor;
use PFTools::Conf;
use PFTools::Logger;
@@ -43,6 +44,7 @@
dirname
isipaddr
ln_sfn
+ print_diff_color
);
our @EXPORT_OK = qw();
@@ -314,4 +316,29 @@
return $tmp;
}
+sub print_diff_color {
+ my (@diff) = @_;
+
+ foreach my $line ( @diff ) {
+ if ( $line =~ m/^\+/ ) {
+ print color q{bold cyan};
+ print qq{$line\n};
+ print color q{reset};
+ }
+ elsif ( $line =~ m/^-/ ) {
+ print color q{bold magenta};
+ print qq{$line\n};
+ print color q{reset};
+ }
+ elsif ( $line =~ m/^@@ / ) {
+ print color q{bold yellow};
+ print qq{$line\n};
+ print color q{reset};
+ }
+ else {
+ print qq{$line\n};
+ }
+ }
+}
+
1;
More information about the pf-tools-commits
mailing list