From: Célestin Matte Date: Tue, 11 Jun 2013 22:18:12 GMT Subject: [PATCH v4 21/31] git-remote-mediawiki: Put long code into a subroutine Message-ID: <1370989102-24942-22-git-send-email-celestin.matte@ensimag.fr> In-Reply-To: <1370989102-24942-1-git-send-email-celestin.matte@ensimag.fr> Signed-off-by: Célestin Matte Signed-off-by: Matthieu Moy --- contrib/mw-to-git/git-remote-mediawiki.perl | 50 +++++++++++++++++---------- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/contrib/mw-to-git/git-remote-mediawiki.perl b/contrib/mw-to-git/git-remote-mediawiki.perl index 7acbec8..da022af 100755 --- a/contrib/mw-to-git/git-remote-mediawiki.perl +++ b/contrib/mw-to-git/git-remote-mediawiki.perl @@ -126,28 +126,13 @@ $wiki_name =~ s{[^/]*://}{}; $wiki_name =~ s/^.*@//; # Commands parser -my @cmd; +my @cmds; while () { chomp; - @cmd = split(/ /); - if (defined($cmd[0])) { + @cmds = split(/ /); + if (defined($cmds[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"; + if (!parse_command(\@cmds)) { last; } } else { @@ -167,6 +152,33 @@ sub exit_error_usage { die "ERROR: git-remote-mediawiki module was not called with a correct number of parameters\n"; } +sub parse_command { + my $cmdref = shift; + my @cmd = @{$cmdref}; + 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"; + return 0; + } + return 1; +} + # MediaWiki API instance, created lazily. my $mediawiki; -- 1.7.9.5