Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use warnings;
- use Getopt::Long qw(:config no_ignore_case );
- my $replace = undef;
- my $delete = undef;
- my $help = 0;
- GetOptions (
- 'replace|r=s' => \$replace,
- 'delete|d' => \$delete,
- 'help|h' => \$help,
- ) or help('unrecognized options');
- help() if $help;
- if ($delete and $replace) {
- help( 'you must choose EITHER "delete" OR "replace". Not both');
- }
- $delete = 1 unless $replace;
- while (my $line = <STDIN>) {
- if ($delete) {
- $line =~ s{(/\*!\d+ )\s*definer\s*=\s*\S+}{$1}i;
- }
- elsif ($replace) {
- $line =~ s{(/\*!\d+\s+definer\s*=\s*)(\S+)}{$1 $replace}i;
- }
- print $line;
- }
- sub help {
- my ($msg) = @_;
- if ($msg) {
- print "*** $msg\n";
- }
- print "dump_filter - mysqldump filter \n",
- "(C) Giuseppe Maxia, 2009\n",
- "removes/changes DEFINER clauses from MySQL dumps\n",
- "USAGE: dump_filter [options]\n",
- " -d|--delete removes the DEFINER clauses\n",
- " -r|--replace=s replaces every DEFINER clause with the \n",
- " new value provided\n",
- " -h|--help This text\n";
- exit(1);
- }
Add Comment
Please, Sign In to add comment