Guest User

Untitled

a guest
Dec 12th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. #!/usr/bin/env perl
  2.  
  3. use warnings;
  4.  
  5. sub usage {
  6. my ($program, $error) = @_;
  7. print "Error: $error\n";
  8. print "Usage:\n";
  9. print "\tcat filename | $program --smudge filename";
  10. print "\tcat filename | $program --clean";
  11. }
  12.  
  13. sub expand {
  14. my ($filename) = @_;
  15. my $sha1 = `git log --pretty=format:"%H" -1 -- $filename`;
  16. while($_ = <STDIN>) {
  17. s{\$ Header \$}{\$Header $sha1 Exp \$}xms;
  18. print;
  19. }
  20. }
  21.  
  22. sub collapse {
  23. while ($_ = <STDIN>) {
  24. s{\$ Header [^\$]* \$}{\$Header\$}xms;
  25. print;
  26. }
  27. }
  28.  
  29. my $program = $^X;
  30. my ($option, $filename) = @ARGV;
  31. $program =~ s{^.*/}{};
  32.  
  33. if ($option eq "--smudge") {
  34. usage($program, "please provide a filename with --smudge") if !$filename;
  35. expand($filename);
  36. }
  37. elsif ($option eq "--clean") {
  38. collapse();
  39. }
  40. else {
  41. usage($program, "unknown command-line option: $option");
  42. }
Add Comment
Please, Sign In to add comment