Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env perl
- use warnings;
- sub usage {
- my ($program, $error) = @_;
- print "Error: $error\n";
- print "Usage:\n";
- print "\tcat filename | $program --smudge filename";
- print "\tcat filename | $program --clean";
- }
- sub expand {
- my ($filename) = @_;
- my $sha1 = `git log --pretty=format:"%H" -1 -- $filename`;
- while($_ = <STDIN>) {
- s{\$ Header \$}{\$Header $sha1 Exp \$}xms;
- print;
- }
- }
- sub collapse {
- while ($_ = <STDIN>) {
- s{\$ Header [^\$]* \$}{\$Header\$}xms;
- print;
- }
- }
- my $program = $^X;
- my ($option, $filename) = @ARGV;
- $program =~ s{^.*/}{};
- if ($option eq "--smudge") {
- usage($program, "please provide a filename with --smudge") if !$filename;
- expand($filename);
- }
- elsif ($option eq "--clean") {
- collapse();
- }
- else {
- usage($program, "unknown command-line option: $option");
- }
Add Comment
Please, Sign In to add comment