Re: [PATCH 10/18] Put long code into a submodule
From: Eric Sunshine <hidden>
Date: 2016-06-15 22:57:34
On Thu, Jun 6, 2013 at 3:34 PM, Célestin Matte [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Signed-off-by: Célestin Matte <redacted> Signed-off-by: Matthieu Moy <redacted> --- contrib/mw-to-git/git-remote-mediawiki.perl | 44 ++++++++++++++++----------- 1 file changed, 26 insertions(+), 18 deletions(-)diff --git a/contrib/mw-to-git/git-remote-mediawiki.perl b/contrib/mw-to-git/git-remote-mediawiki.perl index 1c34ada..1271527 100755 --- a/contrib/mw-to-git/git-remote-mediawiki.perl +++ b/contrib/mw-to-git/git-remote-mediawiki.perl@@ -133,24 +133,7 @@ while (<STDIN>) { @cmd = split(/ /); if (defined($cmd[0])) { # Line not blank - if ($cmd[0] eq "capabilities") { - die("Too many arguments for capabilities\n") if (defined($cmd[1])); - mw_capabilities(); - } elsif ($cmd[0] eq "list") { - die("Too many arguments for list\n") if (defined($cmd[2])); - mw_list($cmd[1]); - } elsif ($cmd[0] eq "import") { - die("Invalid arguments for import\n") if ($cmd[1] eq "" || defined($cmd[2])); - mw_import($cmd[1]); - } elsif ($cmd[0] eq "option") { - die("Too many arguments for option\n") if ($cmd[1] eq "" || $cmd[2] eq "" || defined($cmd[3])); - mw_option($cmd[1],$cmd[2]); - } elsif ($cmd[0] eq "push") { - mw_push($cmd[1]); - } else { - print STDERR "Unknown command. Aborting...\n"; - last; - } + parse_commands(); } else { # blank line: we should terminate last;@@ -168,6 +151,31 @@ sub exit_error_usage { die "ERROR: git-remote-mediawiki module was not called with a correct number of parameters\n"; } +sub parse_commands { + if ($cmd[0] eq "capabilities") { + die("Too many arguments for capabilities\n") + if (defined($cmd[1])); + mw_capabilities(); + } elsif ($cmd[0] eq "list") { + die("Too many arguments for list\n") if (defined($cmd[2])); + mw_list($cmd[1]); + } elsif ($cmd[0] eq "import") { + die("Invalid arguments for import\n") + if ($cmd[1] eq "" || defined($cmd[2])); + mw_import($cmd[1]); + } elsif ($cmd[0] eq "option") { + die("Too many arguments for option\n") + if ($cmd[1] eq "" || $cmd[2] eq "" || defined($cmd[3])); + mw_option($cmd[1],$cmd[2]); + } elsif ($cmd[0] eq "push") { + mw_push($cmd[1]); + } else { + print STDERR "Unknown command. Aborting...\n"; + last;
In the original code, 'last' lived directly in the enclosing 'while' loop, but after this patch, it is inside parse_commands(). With 'use warnings' enabled, you are going to see an "Exiting subroutine via last" diagnostic.
+ } + return; +} + # MediaWiki API instance, created lazily. my $mediawiki;