summaryrefslogtreecommitdiff
path: root/contrib/mw-to-git/git-mw.perl
diff options
context:
space:
mode:
authorBenoit Person <benoit.person@ensimag.fr>2013-07-04 20:38:59 (GMT)
committerJunio C Hamano <gitster@pobox.com>2013-07-08 15:56:08 (GMT)
commit07a263b9056ac7135ed84d64cabf80c5a6b1972e (patch)
tree0fb1aa95fbf5bdcea3273ea00504769a3d135c4b /contrib/mw-to-git/git-mw.perl
parent192f7a080469ea3e7a702f04e08ba7e709c0b3c3 (diff)
downloadgit-07a263b9056ac7135ed84d64cabf80c5a6b1972e.zip
git-07a263b9056ac7135ed84d64cabf80c5a6b1972e.tar.gz
git-07a263b9056ac7135ed84d64cabf80c5a6b1972e.tar.bz2
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>
Diffstat (limited to 'contrib/mw-to-git/git-mw.perl')
-rwxr-xr-xcontrib/mw-to-git/git-mw.perl60
1 files changed, 60 insertions, 0 deletions
diff --git a/contrib/mw-to-git/git-mw.perl b/contrib/mw-to-git/git-mw.perl
new file mode 100755
index 0000000..4a3e4a9
--- /dev/null
+++ b/contrib/mw-to-git/git-mw.perl
@@ -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;
+}