Browse Source

Sly quoting in authormap2filter

master
Jonathan "Duke" Leto 14 years ago
parent
commit
a686e9bb49
  1. 15
      bin/authormap2filter

15
bin/authormap2filter

@ -1,12 +1,12 @@
#!/usr/bin/env perl
use Modern::Perl;
# The output of this should be sourced
# Ex. git filter-branch --env-filter 'source foo.sh'
print <<'PREQUEL';
#!/bin/sh
git filter-branch --env-filter '
n=$GIT_AUTHOR_NAME
m=$GIT_AUTHOR_EMAIL
@ -17,9 +17,12 @@ while( my $line = <> ){
my @f = split /\s+=/, $line;
if( $f[1] =~ m/\s+(.*)\s+<([^<]+)>/) {
my ($name,$email) = ($1,$2);
# Escape double quotes in names. I brought this upon myself.
$name =~ s/"/\\"/g;
say sprintf '"%s") n="%s" ; m="%s" ;;', $f[0], $name, $email;
# We have to by sly about quoting
if ( $name =~ /'/ ) {
say sprintf '"%s") n="%s" ; m="%s" ;;', $f[0], $name, $email;
} else {
say sprintf '"%s") n=\'%s\' ; m="%s" ;;', $f[0], $name, $email;
}
} else {
say sprintf '"%s") n="%s" ; m="%s" ;;', $f[0], $f[0], 'none@none';
}
@ -32,5 +35,5 @@ export GIT_AUTHOR_NAME="$n"
export GIT_AUTHOR_EMAIL="$m"
export GIT_COMMITTER_NAME="$n"
export GIT_COMMITTER_EMAIL="$m"
'
AFTERWORD

Loading…
Cancel
Save