From 933fe72425f6e657c152950246735370f0f06dcf Mon Sep 17 00:00:00 2001 From: rojanu Date: Fri, 15 Jan 2016 14:40:10 +0000 Subject: Bug 922549: Bugzilla::Migrate.pm should provide hook in load function. r=gerv. --- Bugzilla/Migrate.pm | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'Bugzilla/Migrate.pm') diff --git a/Bugzilla/Migrate.pm b/Bugzilla/Migrate.pm index 0731d4fed..6ecdb5c0d 100644 --- a/Bugzilla/Migrate.pm +++ b/Bugzilla/Migrate.pm @@ -199,12 +199,24 @@ sub load { my @migration_modules = glob("$libdir/Bugzilla/Migrate/*"); my ($module) = grep { basename($_) =~ /^\Q$from\E\.pm$/i } @migration_modules; - if (!$module) { + if ($module) { + require $module; + my $canonical_name = _canonical_name($module); + return "Bugzilla::Migrate::$canonical_name"->new; + } + else { + my $migrate_module = {}; + Bugzilla::Hook::process('migrate_modules', $migrate_module); + @migration_modules = glob($migrate_module->{path}."/*"); + ($module) = grep { basename($_) =~ /^\Q$from\E\.pm$/i } + @migration_modules; + if (!$module) { ThrowUserError('migrate_from_invalid', { from => $from }); + } + require $module; + my $canonical_name = _canonical_name($module); + return "$migrate_module->{prefix}::$canonical_name"->new; } - require $module; - my $canonical_name = _canonical_name($module); - return "Bugzilla::Migrate::$canonical_name"->new; } ############# -- cgit v1.2.3-24-g4f1b