git-remote-mediawiki: put long code into a subroutine
Signed-off-by: Célestin Matte <celestin.matte@ensimag.fr> Signed-off-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
42e91929ae
commit
6a316beeee
@ -122,32 +122,10 @@ $wiki_name =~ s{[^/]*://}{};
|
|||||||
$wiki_name =~ s/^.*@//;
|
$wiki_name =~ s/^.*@//;
|
||||||
|
|
||||||
# Commands parser
|
# Commands parser
|
||||||
my @cmd;
|
|
||||||
while (<STDIN>) {
|
while (<STDIN>) {
|
||||||
chomp;
|
chomp;
|
||||||
@cmd = split(/ /);
|
|
||||||
if (defined($cmd[0])) {
|
if (!parse_command($_)) {
|
||||||
# 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;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
# blank line: we should terminate
|
|
||||||
last;
|
last;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -157,6 +135,36 @@ while (<STDIN>) {
|
|||||||
|
|
||||||
########################## Functions ##############################
|
########################## Functions ##############################
|
||||||
|
|
||||||
|
sub parse_command {
|
||||||
|
my ($line) = @_;
|
||||||
|
my @cmd = split(/ /, $line);
|
||||||
|
if (!defined $cmd[0]) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
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.
|
# MediaWiki API instance, created lazily.
|
||||||
my $mediawiki;
|
my $mediawiki;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user