git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v7 1/7] git-remote-mediawiki: Introduction of Git::Mediawiki.pm

From
Bbenoit.person@ensimag.fr <benoit.person@ensimag.fr>
Date
Jul 2, 2013, 22:39 UTC
Message-ID
<1372804789-12732-2-git-send-email-benoit.person@ensimag.fr>
In-Reply-To
<1372804789-12732-1-git-send-email-benoit.person@ensimag.fr>
From: Benoit Person <benoit.person@ensimag.fr>

Currently, the mw-to-git project contains only a remote helper (git-remote-mediawiki.perl). To improve the user experience while working with mediawiki remotes, new tools, designed for such cases, should be created. To achieve this goal, the project needs a way to share code between several scripts (remote helper, commands, ... ).

A perl package offers the best way to handle such case: Each script can select what should be imported in its namespace. The package namespacing limits the use of side effects in the shared code.

An alternate solution is to concatenate a "toolset" file with each *.perl when 'make'-ing the project. In that scheme, everything is imported in the script's namespace. Plus, files should be renamed in order to chain to Git's toplevel makefile. Hence, this solution is not acceptable.

Signed-off-by: Benoit Person <benoit.person@ensimag.fr>
Signed-off-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
---
 contrib/mw-to-git/Git/Mediawiki.pm | 24 ++++++++++++++++++++++++
 contrib/mw-to-git/Makefile         | 24 +++++++++++++++++++++---
 2 files changed, 45 insertions(+), 3 deletions(-)
 create mode 100644 contrib/mw-to-git/Git/Mediawiki.pm
diff --git a/contrib/mw-to-git/Git/Mediawiki.pm b/contrib/mw-to-git/Git/Mediawiki.pm
new file mode 100644
index 0000000..805f42a
--- /dev/null
+++ b/contrib/mw-to-git/Git/Mediawiki.pm
@@ -0,0 +1,24 @@
+package Git::Mediawiki;
+
+use 5.008;
+use strict;
+use Git;
+
+BEGIN {
+
+our ($VERSION, @ISA, @EXPORT, @EXPORT_OK);
+
+# Totally unstable API.
+$VERSION = '0.01';
+
+require Exporter;
+
+@ISA = qw(Exporter);
+
+@EXPORT = ();
+
+# Methods which can be called as standalone functions as well:
+@EXPORT_OK = ();
+}
+
+1; # Famous last words
diff --git a/contrib/mw-to-git/Makefile b/contrib/mw-to-git/Makefile
index 1fb2424..a6f8b24 100644
--- a/contrib/mw-to-git/Makefile
+++ b/contrib/mw-to-git/Makefile
@@ -2,18 +2,36 @@
 # Copyright (C) 2013
 #     Matthieu Moy <Matthieu.Moy@imag.fr>
 #
-## Build git-remote-mediawiki
+# To install, run Git's toplevel 'make install' then run:
+#
+#   make install
 
+GIT_MEDIAWIKI_PM=Git/Mediawiki.pm
 SCRIPT_PERL=git-remote-mediawiki.perl
 GIT_ROOT_DIR=../..
 HERE=contrib/mw-to-git/
 
 SCRIPT_PERL_FULL=$(patsubst %,$(HERE)/%,$(SCRIPT_PERL))
+INSTLIBDIR=$(shell $(MAKE) -C $(GIT_ROOT_DIR)/perl \
+                -s --no-print-directory instlibdir)
 
 all: build
 
-build install clean:
+install_pm:
+	install $(GIT_MEDIAWIKI_PM) $(INSTLIBDIR)/$(GIT_MEDIAWIKI_PM)
+
+build:
+	$(MAKE) -C $(GIT_ROOT_DIR) SCRIPT_PERL=$(SCRIPT_PERL_FULL) \
+                build-perl-script
+
+install: install_pm
 	$(MAKE) -C $(GIT_ROOT_DIR) SCRIPT_PERL=$(SCRIPT_PERL_FULL) \
-                $@-perl-script
+                install-perl-script
+
+clean:
+	$(MAKE) -C $(GIT_ROOT_DIR) SCRIPT_PERL=$(SCRIPT_PERL_FULL) \
+                clean-perl-script
+	rm $(INSTLIBDIR)/$(GIT_MEDIAWIKI_PM)
+
 perlcritic:
 	perlcritic -2 *.perl
-- 
1.8.3.1.590.gc07d91b
Previous: benoit.person@ensimag.frNext: Junio C Hamano
Message 2 of 20 in “git-remote-mediawiki: new tool to preview local changes without pushing”
  1. 0/7 git-remote-mediawiki: new tool to preview local changes without pushingbenoit.person@ensimag.fr, Jul 2, 2013
  2. 1/7 git-remote-mediawiki: Introduction of Git::Mediawiki.pmbenoit.person@ensimag.fr, Jul 2, 2013
  3. Junio C HamanoJul 2, 2013
  4. 2/7 wrap-for-bin: Make bin-wrappers chainablebenoit.person@ensimag.fr, Jul 2, 2013
  5. Junio C HamanoJul 2, 2013
  6. Benoît PersonJul 2, 2013
  7. Junio C HamanoJul 3, 2013
  8. Benoît PersonJul 3, 2013
  9. Michael HaggertyJul 3, 2013
  10. Matthieu MoyJul 3, 2013
  11. Junio C HamanoJul 3, 2013
  12. Matthieu MoyJul 3, 2013
  13. Junio C HamanoJul 3, 2013
  14. 3/7 git-remote-mediawiki: New git bin-wrapper for developementbenoit.person@ensimag.fr, Jul 2, 2013
  15. Junio C HamanoJul 2, 2013
  16. 4/7 git-remote-mediawiki: Update tests to run with the new bin-wrapperbenoit.person@ensimag.fr, Jul 2, 2013
  17. Matthieu MoyJul 3, 2013
  18. 5/7 git-remote-mediawiki: Factoring code between git-remote-mediawiki and Git::Mediawikibenoit.person@ensimag.fr, Jul 2, 2013
  19. 6/7 git-remote-mediawiki: Adding git-mw commandbenoit.person@ensimag.fr, Jul 2, 2013
  20. 7/7 git-remote-mediawiki: Add preview subcommand into git mwbenoit.person@ensimag.fr, Jul 2, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.