aboutsummaryrefslogtreecommitdiffstats
path: root/tools/migration
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2011-02-26 00:24:23 +0000
committerMatthew Wild <mwild1@gmail.com>2011-02-26 00:24:23 +0000
commit05b3139a2ca2d784ac07066d8773ca07b5113159 (patch)
treeaa68c7dba38183a45322f3356d08c73e8c45b599 /tools/migration
parent48f32e711317c95d6d4b32de85ae8b8fe1590533 (diff)
parent2b4811c8430dcbec09c67b73e8f939b4047f1aec (diff)
downloadprosody-05b3139a2ca2d784ac07066d8773ca07b5113159.tar.gz
prosody-05b3139a2ca2d784ac07066d8773ca07b5113159.zip
Merge 0.8->trunk
Diffstat (limited to 'tools/migration')
-rw-r--r--tools/migration/Makefile38
-rw-r--r--tools/migration/main.lua23
-rw-r--r--tools/migration/migrator/mtools.lua (renamed from tools/migration/mtools.lua)0
-rw-r--r--tools/migration/migrator/prosody_files.lua (renamed from tools/migration/prosody_files.lua)2
-rw-r--r--tools/migration/migrator/prosody_sql.lua (renamed from tools/migration/prosody_sql.lua)2
5 files changed, 56 insertions, 9 deletions
diff --git a/tools/migration/Makefile b/tools/migration/Makefile
new file mode 100644
index 00000000..839f2d87
--- /dev/null
+++ b/tools/migration/Makefile
@@ -0,0 +1,38 @@
+
+include ../../config.unix
+
+BIN = $(DESTDIR)$(PREFIX)/bin
+CONFIG = $(DESTDIR)$(SYSCONFDIR)
+SOURCE = $(DESTDIR)$(PREFIX)/lib/prosody
+DATA = $(DESTDIR)$(DATADIR)
+MAN = $(DESTDIR)$(PREFIX)/share/man
+
+INSTALLEDSOURCE = $(PREFIX)/lib/prosody
+INSTALLEDCONFIG = $(SYSCONFDIR)
+INSTALLEDMODULES = $(PREFIX)/lib/prosody/modules
+INSTALLEDDATA = $(DATADIR)
+
+SOURCE_FILES = main.lua migrator/*.lua
+
+all: prosody-migrator.install migrator.cfg.lua.install $(SOURCE_FILES)
+
+install: prosody-migrator.install migrator.cfg.lua.install
+ install -d $(BIN) $(CONFIG) $(SOURCE) $(SOURCE)/migrator
+ install -d $(MAN)/man1
+ install -d $(SOURCE)/migrator
+ install -m755 ./prosody-migrator.install $(BIN)/prosody-migrator
+ install -m644 $(SOURCE_FILES) $(SOURCE)/migrator
+ test -e $(CONFIG)/migrator.cfg.lua || install -m644 migrator.cfg.lua.install $(CONFIG)/migrator.cfg.lua
+
+clean:
+ rm -f prosody-migrator.install
+ rm -f migrator.cfg.lua.install
+
+prosody-migrator.install: main.lua
+ sed "s|^CFG_SOURCEDIR=.*;$$|CFG_SOURCEDIR='$(INSTALLEDSOURCE)';|; \
+ s|^CFG_CONFIGDIR=.*;$$|CFG_CONFIGDIR='$(INSTALLEDCONFIG)';|;" \
+ < main.lua > prosody-migrator.install
+
+migrator.cfg.lua.install: migrator.cfg.lua
+ sed "s|^local data_path = .*;$$|local data_path = '$(INSTALLEDDATA)';|;" \
+ < migrator.cfg.lua > migrator.cfg.lua.install
diff --git a/tools/migration/main.lua b/tools/migration/main.lua
index e4891966..82eeab9d 100644
--- a/tools/migration/main.lua
+++ b/tools/migration/main.lua
@@ -1,4 +1,9 @@
-local default_config = "./migrator.cfg.lua";
+#!/usr/bin/env lua
+
+CFG_SOURCEDIR=os.getenv("PROSODY_SRCDIR");
+CFG_CONFIGDIR=os.getenv("PROSODY_CFGDIR");
+
+local default_config = (CFG_CONFIGDIR or ".").."/migrator.cfg.lua";
-- Command-line parsing
local options = {};
@@ -45,9 +50,12 @@ end
config_chunk();
-if not package.loaded["util.json"] then
+if CFG_SOURCEDIR then
+ package.path = CFG_SOURCEDIR.."/?.lua;"..package.path;
+ package.cpath = CFG_SOURCEDIR.."/?.so;"..package.cpath;
+elseif not package.loaded["util.json"] then
package.path = "../../?.lua;"..package.path
- package.cpath = "../../?.dll;"..package.cpath
+ package.cpath = "../../?.so;"..package.cpath
end
local have_err;
@@ -66,14 +74,14 @@ end
if not config[from_store].type then
have_err = true;
print("Error: Input store type not specified in the config file");
-elseif not pcall(require, config[from_store].type) then
+elseif not pcall(require, "migrator."..config[from_store].type) then
have_err = true;
print("Error: Unrecognised store type for '"..from_store.."': "..config[from_store].type);
end
if not config[to_store].type then
have_err = true;
print("Error: Output store type not specified in the config file");
-elseif not pcall(require, config[to_store].type) then
+elseif not pcall(require, "migrator."..config[to_store].type) then
have_err = true;
print("Error: Unrecognised store type for '"..to_store.."': "..config[to_store].type);
end
@@ -88,13 +96,14 @@ if have_err then
for store in pairs(config) do
print("", store);
end
+ print("");
os.exit(1);
end
local itype = config[from_store].type;
local otype = config[to_store].type;
-local reader = require(itype).reader(config[from_store]);
-local writer = require(otype).writer(config[to_store]);
+local reader = require("migrator."..itype).reader(config[from_store]);
+local writer = require("migrator."..otype).writer(config[to_store]);
local json = require "util.json";
diff --git a/tools/migration/mtools.lua b/tools/migration/migrator/mtools.lua
index e7b774bb..e7b774bb 100644
--- a/tools/migration/mtools.lua
+++ b/tools/migration/migrator/mtools.lua
diff --git a/tools/migration/prosody_files.lua b/tools/migration/migrator/prosody_files.lua
index df67c240..0a610d0e 100644
--- a/tools/migration/prosody_files.lua
+++ b/tools/migration/migrator/prosody_files.lua
@@ -9,7 +9,7 @@ local lfs = require "lfs";
local loadfile = loadfile;
local setfenv = setfenv;
local pcall = pcall;
-local mtools = require "mtools";
+local mtools = require "migrator.mtools";
local next = next;
local pairs = pairs;
local json = require "util.json";
diff --git a/tools/migration/prosody_sql.lua b/tools/migration/migrator/prosody_sql.lua
index ff33652a..3a9172ff 100644
--- a/tools/migration/prosody_sql.lua
+++ b/tools/migration/migrator/prosody_sql.lua
@@ -7,7 +7,7 @@ local next = next;
local pairs = pairs;
local t_sort = table.sort;
local json = require "util.json";
-local mtools = require "mtools";
+local mtools = require "migrator.mtools";
local tostring = tostring;
local tonumber = tonumber;