git-remote-mediawiki: add git-mw command
For now, git-remote-mediawiki is only a remote-helper. This patch adds a new toolset script in which we will be able to build new tools for git-remote-mediawiki. This toolset uses a subcommand-mechanism to launch the proper action. For now only the 'help' subcommand is implemented. It also provides some generic code for the verbose and help command line options. Signed-off-by: Benoit Person <benoit.person@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:
parent
192f7a0804
commit
07a263b905
@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
GIT_MEDIAWIKI_PM=Git/Mediawiki.pm
|
GIT_MEDIAWIKI_PM=Git/Mediawiki.pm
|
||||||
SCRIPT_PERL=git-remote-mediawiki.perl
|
SCRIPT_PERL=git-remote-mediawiki.perl
|
||||||
|
SCRIPT_PERL+=git-mw.perl
|
||||||
GIT_ROOT_DIR=../..
|
GIT_ROOT_DIR=../..
|
||||||
HERE=contrib/mw-to-git/
|
HERE=contrib/mw-to-git/
|
||||||
|
|
||||||
@ -27,15 +28,15 @@ install_pm:
|
|||||||
install $(GIT_MEDIAWIKI_PM) $(INSTLIBDIR)/$(GIT_MEDIAWIKI_PM)
|
install $(GIT_MEDIAWIKI_PM) $(INSTLIBDIR)/$(GIT_MEDIAWIKI_PM)
|
||||||
|
|
||||||
build:
|
build:
|
||||||
$(MAKE) -C $(GIT_ROOT_DIR) SCRIPT_PERL=$(SCRIPT_PERL_FULL) \
|
$(MAKE) -C $(GIT_ROOT_DIR) SCRIPT_PERL="$(SCRIPT_PERL_FULL)" \
|
||||||
build-perl-script
|
build-perl-script
|
||||||
|
|
||||||
install: install_pm
|
install: install_pm
|
||||||
$(MAKE) -C $(GIT_ROOT_DIR) SCRIPT_PERL=$(SCRIPT_PERL_FULL) \
|
$(MAKE) -C $(GIT_ROOT_DIR) SCRIPT_PERL="$(SCRIPT_PERL_FULL)" \
|
||||||
install-perl-script
|
install-perl-script
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(MAKE) -C $(GIT_ROOT_DIR) SCRIPT_PERL=$(SCRIPT_PERL_FULL) \
|
$(MAKE) -C $(GIT_ROOT_DIR) SCRIPT_PERL="$(SCRIPT_PERL_FULL)" \
|
||||||
clean-perl-script
|
clean-perl-script
|
||||||
rm $(INSTLIBDIR)/$(GIT_MEDIAWIKI_PM)
|
rm $(INSTLIBDIR)/$(GIT_MEDIAWIKI_PM)
|
||||||
|
|
||||||
|
60
contrib/mw-to-git/git-mw.perl
Executable file
60
contrib/mw-to-git/git-mw.perl
Executable file
@ -0,0 +1,60 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
# Copyright (C) 2013
|
||||||
|
# Benoit Person <benoit.person@ensimag.imag.fr>
|
||||||
|
# Celestin Matte <celestin.matte@ensimag.imag.fr>
|
||||||
|
# License: GPL v2 or later
|
||||||
|
|
||||||
|
# Set of tools for git repo with a mediawiki remote.
|
||||||
|
# Documentation & bugtracker: https://github.com/moy/Git-Mediawiki/
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
use Getopt::Long;
|
||||||
|
|
||||||
|
# By default, use UTF-8 to communicate with Git and the user
|
||||||
|
binmode STDERR, ':encoding(UTF-8)';
|
||||||
|
binmode STDOUT, ':encoding(UTF-8)';
|
||||||
|
|
||||||
|
# Global parameters
|
||||||
|
my $verbose = 0;
|
||||||
|
sub v_print {
|
||||||
|
if ($verbose) {
|
||||||
|
return print {*STDERR} @_;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
my %commands = (
|
||||||
|
'help' =>
|
||||||
|
[\&help, {}, \&help]
|
||||||
|
);
|
||||||
|
|
||||||
|
# Search for sub-command
|
||||||
|
my $cmd = $commands{'help'};
|
||||||
|
for (0..@ARGV-1) {
|
||||||
|
if (defined $commands{$ARGV[$_]}) {
|
||||||
|
$cmd = $commands{$ARGV[$_]};
|
||||||
|
splice @ARGV, $_, 1;
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
GetOptions( %{$cmd->[1]},
|
||||||
|
'help|h' => \&{$cmd->[2]},
|
||||||
|
'verbose|v' => \$verbose);
|
||||||
|
|
||||||
|
# Launch command
|
||||||
|
&{$cmd->[0]};
|
||||||
|
|
||||||
|
############################## Help Functions ##################################
|
||||||
|
|
||||||
|
sub help {
|
||||||
|
print {*STDOUT} <<'END';
|
||||||
|
usage: git mw <command> <args>
|
||||||
|
|
||||||
|
git mw commands are:
|
||||||
|
help Display help information about git mw
|
||||||
|
END
|
||||||
|
exit;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user