Software /
code /
prosody
Annotate
tools/migration/prosody-migrator.lua @ 4240:b3d9063aad4d
tools/migration/prosody-migrator.lua: Add messages to show when migration is in progress
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 05 Apr 2011 14:34:06 +0100 |
parent | 4239:69fe5fd861e7 |
child | 5021:85b2689dbcfe |
rev | line source |
---|---|
4216
ff80a8471e86
tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents:
4214
diff
changeset
|
1 #!/usr/bin/env lua |
ff80a8471e86
tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents:
4214
diff
changeset
|
2 |
ff80a8471e86
tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents:
4214
diff
changeset
|
3 CFG_SOURCEDIR=os.getenv("PROSODY_SRCDIR"); |
ff80a8471e86
tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents:
4214
diff
changeset
|
4 CFG_CONFIGDIR=os.getenv("PROSODY_CFGDIR"); |
ff80a8471e86
tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents:
4214
diff
changeset
|
5 |
4239
69fe5fd861e7
tools/migration: Support for ~/ in paths
Matthew Wild <mwild1@gmail.com>
parents:
4235
diff
changeset
|
6 -- Substitute ~ with path to home directory in paths |
69fe5fd861e7
tools/migration: Support for ~/ in paths
Matthew Wild <mwild1@gmail.com>
parents:
4235
diff
changeset
|
7 if CFG_CONFIGDIR then |
69fe5fd861e7
tools/migration: Support for ~/ in paths
Matthew Wild <mwild1@gmail.com>
parents:
4235
diff
changeset
|
8 CFG_CONFIGDIR = CFG_CONFIGDIR:gsub("^~", os.getenv("HOME")); |
69fe5fd861e7
tools/migration: Support for ~/ in paths
Matthew Wild <mwild1@gmail.com>
parents:
4235
diff
changeset
|
9 end |
69fe5fd861e7
tools/migration: Support for ~/ in paths
Matthew Wild <mwild1@gmail.com>
parents:
4235
diff
changeset
|
10 |
69fe5fd861e7
tools/migration: Support for ~/ in paths
Matthew Wild <mwild1@gmail.com>
parents:
4235
diff
changeset
|
11 if CFG_SOURCEDIR then |
69fe5fd861e7
tools/migration: Support for ~/ in paths
Matthew Wild <mwild1@gmail.com>
parents:
4235
diff
changeset
|
12 CFG_SOURCEDIR = CFG_SOURCEDIR:gsub("^~", os.getenv("HOME")); |
69fe5fd861e7
tools/migration: Support for ~/ in paths
Matthew Wild <mwild1@gmail.com>
parents:
4235
diff
changeset
|
13 end |
69fe5fd861e7
tools/migration: Support for ~/ in paths
Matthew Wild <mwild1@gmail.com>
parents:
4235
diff
changeset
|
14 |
4216
ff80a8471e86
tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents:
4214
diff
changeset
|
15 local default_config = (CFG_CONFIGDIR or ".").."/migrator.cfg.lua"; |
4214
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
16 |
4213
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
17 -- Command-line parsing |
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
18 local options = {}; |
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
19 local handled_opts = 0; |
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
20 for i = 1, #arg do |
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
21 if arg[i]:sub(1,2) == "--" then |
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
22 local opt, val = arg[i]:match("([%w-]+)=?(.*)"); |
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
23 if opt then |
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
24 options[(opt:sub(3):gsub("%-", "_"))] = #val > 0 and val or true; |
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
25 end |
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
26 handled_opts = i; |
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
27 else |
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
28 break; |
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
29 end |
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
30 end |
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
31 table.remove(arg, handled_opts); |
4197
bef732980436
tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents:
4193
diff
changeset
|
32 |
4213
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
33 -- Load config file |
4214
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
34 local function loadfilein(file, env) |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
35 if loadin then |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
36 return loadin(env, io.open(file):read("*a")); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
37 else |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
38 local chunk, err = loadfile(file); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
39 if chunk then |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
40 setfenv(chunk, env); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
41 end |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
42 return chunk, err; |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
43 end |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
44 end |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
45 |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
46 local config_file = options.config or default_config; |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
47 local from_store = arg[1] or "input"; |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
48 local to_store = arg[2] or "output"; |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
49 |
4197
bef732980436
tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents:
4193
diff
changeset
|
50 config = {}; |
bef732980436
tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents:
4193
diff
changeset
|
51 local config_env = setmetatable({}, { __index = function(t, k) return function(tbl) config[k] = tbl; end; end }); |
4214
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
52 local config_chunk, err = loadfilein(config_file, config_env); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
53 if not config_chunk then |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
54 print("There was an error loading the config file, check the file exists"); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
55 print("and that the syntax is correct:"); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
56 print("", err); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
57 os.exit(1); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
58 end |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
59 |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
60 config_chunk(); |
4197
bef732980436
tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents:
4193
diff
changeset
|
61 |
4216
ff80a8471e86
tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents:
4214
diff
changeset
|
62 if CFG_SOURCEDIR then |
ff80a8471e86
tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents:
4214
diff
changeset
|
63 package.path = CFG_SOURCEDIR.."/?.lua;"..package.path; |
ff80a8471e86
tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents:
4214
diff
changeset
|
64 package.cpath = CFG_SOURCEDIR.."/?.so;"..package.cpath; |
ff80a8471e86
tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents:
4214
diff
changeset
|
65 elseif not package.loaded["util.json"] then |
4213
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
66 package.path = "../../?.lua;"..package.path |
4216
ff80a8471e86
tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents:
4214
diff
changeset
|
67 package.cpath = "../../?.so;"..package.cpath |
4213
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
68 end |
4197
bef732980436
tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents:
4193
diff
changeset
|
69 |
4214
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
70 local have_err; |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
71 if #arg > 0 and #arg ~= 2 then |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
72 have_err = true; |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
73 print("Error: Incorrect number of parameters supplied."); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
74 end |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
75 if not config[from_store] then |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
76 have_err = true; |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
77 print("Error: Input store '"..from_store.."' not found in the config file."); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
78 end |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
79 if not config[to_store] then |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
80 have_err = true; |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
81 print("Error: Output store '"..to_store.."' not found in the config file."); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
82 end |
4235
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
83 |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
84 function load_store_handler(name) |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
85 local store_type = config[name].type; |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
86 if not store_type then |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
87 print("Error: "..name.." store type not specified in the config file"); |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
88 return false; |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
89 else |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
90 local ok, err = pcall(require, "migrator."..store_type); |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
91 if not ok then |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
92 if package.loaded["migrator."..store_type] then |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
93 print(("Error: Failed to initialize '%s' store:\n\t%s") |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
94 :format(name, err)); |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
95 else |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
96 print(("Error: Unrecognised store type for '%s': %s") |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
97 :format(from_store, store_type)); |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
98 end |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
99 return false; |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
100 end |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
101 end |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
102 return true; |
4214
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
103 end |
4235
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
104 |
899ffc1674b5
tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents:
4229
diff
changeset
|
105 have_err = have_err or not(load_store_handler(from_store, "input") and load_store_handler(to_store, "output")); |
4213
8f169a92b4ba
tools/migration/main.lua: Add command-line parsing, including --config=CONFIG_FILE, and the ability to specify to/from stores to migrate
Matthew Wild <mwild1@gmail.com>
parents:
4197
diff
changeset
|
106 |
4214
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
107 if have_err then |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
108 print(""); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
109 print("Usage: "..arg[0].." FROM_STORE TO_STORE"); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
110 print("If no stores are specified, 'input' and 'output' are used."); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
111 print(""); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
112 print("The available stores in your migrator config are:"); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
113 print(""); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
114 for store in pairs(config) do |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
115 print("", store); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
116 end |
4216
ff80a8471e86
tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents:
4214
diff
changeset
|
117 print(""); |
4214
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
118 os.exit(1); |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
119 end |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
120 |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
121 local itype = config[from_store].type; |
1674cd17557c
tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents:
4213
diff
changeset
|
122 local otype = config[to_store].type; |
4216
ff80a8471e86
tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents:
4214
diff
changeset
|
123 local reader = require("migrator."..itype).reader(config[from_store]); |
ff80a8471e86
tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents:
4214
diff
changeset
|
124 local writer = require("migrator."..otype).writer(config[to_store]); |
4197
bef732980436
tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents:
4193
diff
changeset
|
125 |
bef732980436
tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents:
4193
diff
changeset
|
126 local json = require "util.json"; |
bef732980436
tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents:
4193
diff
changeset
|
127 |
4240
b3d9063aad4d
tools/migration/prosody-migrator.lua: Add messages to show when migration is in progress
Matthew Wild <mwild1@gmail.com>
parents:
4239
diff
changeset
|
128 io.stderr:write("Migrating...\n"); |
4197
bef732980436
tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents:
4193
diff
changeset
|
129 for x in reader do |
bef732980436
tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents:
4193
diff
changeset
|
130 --print(json.encode(x)) |
bef732980436
tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents:
4193
diff
changeset
|
131 writer(x); |
bef732980436
tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents:
4193
diff
changeset
|
132 end |
bef732980436
tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents:
4193
diff
changeset
|
133 writer(nil); -- close |
4240
b3d9063aad4d
tools/migration/prosody-migrator.lua: Add messages to show when migration is in progress
Matthew Wild <mwild1@gmail.com>
parents:
4239
diff
changeset
|
134 io.stderr:write("Done!\n"); |