aboutsummaryrefslogtreecommitdiffstats
path: root/tools/migration/main.lua
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2011-03-21 19:39:04 +0000
committerMatthew Wild <mwild1@gmail.com>2011-03-21 19:39:04 +0000
commit1f049ed80d3a07636a207b859cc236e3d39eb4f1 (patch)
tree1eefc745a5c6af63097949fb3ac774d915adf225 /tools/migration/main.lua
parentb94b9eba5ea54ee73b13c6266f071db9ad685a7d (diff)
downloadprosody-1f049ed80d3a07636a207b859cc236e3d39eb4f1.tar.gz
prosody-1f049ed80d3a07636a207b859cc236e3d39eb4f1.zip
tools/migration: Rename main.lua -> prosody-migrator.lua and update the Makefile
Diffstat (limited to 'tools/migration/main.lua')
-rw-r--r--tools/migration/main.lua115
1 files changed, 0 insertions, 115 deletions
diff --git a/tools/migration/main.lua b/tools/migration/main.lua
deleted file mode 100644
index 82eeab9d..00000000
--- a/tools/migration/main.lua
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/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 = {};
-local handled_opts = 0;
-for i = 1, #arg do
- if arg[i]:sub(1,2) == "--" then
- local opt, val = arg[i]:match("([%w-]+)=?(.*)");
- if opt then
- options[(opt:sub(3):gsub("%-", "_"))] = #val > 0 and val or true;
- end
- handled_opts = i;
- else
- break;
- end
-end
-table.remove(arg, handled_opts);
-
--- Load config file
-local function loadfilein(file, env)
- if loadin then
- return loadin(env, io.open(file):read("*a"));
- else
- local chunk, err = loadfile(file);
- if chunk then
- setfenv(chunk, env);
- end
- return chunk, err;
- end
-end
-
-local config_file = options.config or default_config;
-local from_store = arg[1] or "input";
-local to_store = arg[2] or "output";
-
-config = {};
-local config_env = setmetatable({}, { __index = function(t, k) return function(tbl) config[k] = tbl; end; end });
-local config_chunk, err = loadfilein(config_file, config_env);
-if not config_chunk then
- print("There was an error loading the config file, check the file exists");
- print("and that the syntax is correct:");
- print("", err);
- os.exit(1);
-end
-
-config_chunk();
-
-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 = "../../?.so;"..package.cpath
-end
-
-local have_err;
-if #arg > 0 and #arg ~= 2 then
- have_err = true;
- print("Error: Incorrect number of parameters supplied.");
-end
-if not config[from_store] then
- have_err = true;
- print("Error: Input store '"..from_store.."' not found in the config file.");
-end
-if not config[to_store] then
- have_err = true;
- print("Error: Output store '"..to_store.."' not found in the config file.");
-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, "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, "migrator."..config[to_store].type) then
- have_err = true;
- print("Error: Unrecognised store type for '"..to_store.."': "..config[to_store].type);
-end
-
-if have_err then
- print("");
- print("Usage: "..arg[0].." FROM_STORE TO_STORE");
- print("If no stores are specified, 'input' and 'output' are used.");
- print("");
- print("The available stores in your migrator config are:");
- print("");
- 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("migrator."..itype).reader(config[from_store]);
-local writer = require("migrator."..otype).writer(config[to_store]);
-
-local json = require "util.json";
-
-for x in reader do
- --print(json.encode(x))
- writer(x);
-end
-writer(nil); -- close
-