Annotate

tools/migration/prosody-migrator.lua @ 12181:783056b4e448 0.11 0.11.12

util.xml: Do not allow doctypes, comments or processing instructions Yes. This is as bad as it sounds. CVE pending. In Prosody itself, this only affects mod_websocket, which uses util.xml to parse the <open/> frame, thus allowing unauthenticated remote DoS using Billion Laughs. However, third-party modules using util.xml may also be affected by this. This commit installs handlers which disallow the use of doctype declarations and processing instructions without any escape hatch. It, by default, also introduces such a handler for comments, however, there is a way to enable comments nontheless. This is because util.xml is used to parse human-facing data, where comments are generally a desirable feature, and also because comments are generally harmless.
author Jonas Schäfer <jonas@wielicki.name>
date Mon, 10 Jan 2022 18:23:54 +0100
parent 8062:739bb455cafd
child 10003:4d702f0c6273
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4216
ff80a8471e86 tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents: 4211
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: 4211
diff changeset
2
ff80a8471e86 tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents: 4211
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: 4211
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: 4211
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
7893
432f721b0fdf migrator: Unexpand whitespace
Kim Alvefur <zash@zash.se>
parents: 7880
diff changeset
8 CFG_CONFIGDIR = CFG_CONFIGDIR:gsub("^~", os.getenv("HOME"));
4239
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
7893
432f721b0fdf migrator: Unexpand whitespace
Kim Alvefur <zash@zash.se>
parents: 7880
diff changeset
12 CFG_SOURCEDIR = CFG_SOURCEDIR:gsub("^~", os.getenv("HOME"));
4239
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: 4211
diff changeset
15 local default_config = (CFG_CONFIGDIR or ".").."/migrator.cfg.lua";
4211
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
16
4210
4583473dcce4 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: 4166
diff changeset
17 -- Command-line parsing
4583473dcce4 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: 4166
diff changeset
18 local options = {};
7894
217412da818f migrator: Fix argument parsing
Kim Alvefur <zash@zash.se>
parents: 7893
diff changeset
19 local i = 1;
217412da818f migrator: Fix argument parsing
Kim Alvefur <zash@zash.se>
parents: 7893
diff changeset
20 while arg[i] do
4210
4583473dcce4 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: 4166
diff changeset
21 if arg[i]:sub(1,2) == "--" then
4583473dcce4 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: 4166
diff changeset
22 local opt, val = arg[i]:match("([%w-]+)=?(.*)");
4583473dcce4 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: 4166
diff changeset
23 if opt then
4583473dcce4 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: 4166
diff changeset
24 options[(opt:sub(3):gsub("%-", "_"))] = #val > 0 and val or true;
4583473dcce4 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: 4166
diff changeset
25 end
7894
217412da818f migrator: Fix argument parsing
Kim Alvefur <zash@zash.se>
parents: 7893
diff changeset
26 table.remove(arg, i);
4210
4583473dcce4 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: 4166
diff changeset
27 else
7894
217412da818f migrator: Fix argument parsing
Kim Alvefur <zash@zash.se>
parents: 7893
diff changeset
28 i = i + 1;
4210
4583473dcce4 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: 4166
diff changeset
29 end
4583473dcce4 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: 4166
diff changeset
30 end
4166
3ac90743039b tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents: 4162
diff changeset
31
5021
85b2689dbcfe Eliminate direct setfenv usage
Florian Zeitz <florob@babelmonkeys.de>
parents: 4240
diff changeset
32 if CFG_SOURCEDIR then
85b2689dbcfe Eliminate direct setfenv usage
Florian Zeitz <florob@babelmonkeys.de>
parents: 4240
diff changeset
33 package.path = CFG_SOURCEDIR.."/?.lua;"..package.path;
85b2689dbcfe Eliminate direct setfenv usage
Florian Zeitz <florob@babelmonkeys.de>
parents: 4240
diff changeset
34 package.cpath = CFG_SOURCEDIR.."/?.so;"..package.cpath;
85b2689dbcfe Eliminate direct setfenv usage
Florian Zeitz <florob@babelmonkeys.de>
parents: 4240
diff changeset
35 else
85b2689dbcfe Eliminate direct setfenv usage
Florian Zeitz <florob@babelmonkeys.de>
parents: 4240
diff changeset
36 package.path = "../../?.lua;"..package.path
85b2689dbcfe Eliminate direct setfenv usage
Florian Zeitz <florob@babelmonkeys.de>
parents: 4240
diff changeset
37 package.cpath = "../../?.so;"..package.cpath
85b2689dbcfe Eliminate direct setfenv usage
Florian Zeitz <florob@babelmonkeys.de>
parents: 4240
diff changeset
38 end
85b2689dbcfe Eliminate direct setfenv usage
Florian Zeitz <florob@babelmonkeys.de>
parents: 4240
diff changeset
39
85b2689dbcfe Eliminate direct setfenv usage
Florian Zeitz <florob@babelmonkeys.de>
parents: 4240
diff changeset
40 local envloadfile = require "util.envload".envloadfile;
85b2689dbcfe Eliminate direct setfenv usage
Florian Zeitz <florob@babelmonkeys.de>
parents: 4240
diff changeset
41
4211
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
42 local config_file = options.config or default_config;
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
43 local from_store = arg[1] or "input";
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
44 local to_store = arg[2] or "output";
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
45
4166
3ac90743039b tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents: 4162
diff changeset
46 config = {};
3ac90743039b tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents: 4162
diff changeset
47 local config_env = setmetatable({}, { __index = function(t, k) return function(tbl) config[k] = tbl; end; end });
7880
1d998891c967 migrator: Remove wrapper around envloadfile since envloadfile does the right thing in a compatible way
Kim Alvefur <zash@zash.se>
parents: 5776
diff changeset
48 local config_chunk, err = envloadfile(config_file, config_env);
4211
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
49 if not config_chunk then
7895
1e1c18012048 migrator: Fix missing word
Kim Alvefur <zash@zash.se>
parents: 7894
diff changeset
50 print("There was an error loading the config file, check that the file exists");
4211
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
51 print("and that the syntax is correct:");
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
52 print("", err);
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
53 os.exit(1);
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
54 end
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
55
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
56 config_chunk();
4166
3ac90743039b tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents: 4162
diff changeset
57
4211
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
58 local have_err;
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
59 if #arg > 0 and #arg ~= 2 then
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
60 have_err = true;
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
61 print("Error: Incorrect number of parameters supplied.");
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
62 end
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
63 if not config[from_store] then
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
64 have_err = true;
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
65 print("Error: Input store '"..from_store.."' not found in the config file.");
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
66 end
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
67 if not config[to_store] then
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
68 have_err = true;
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
69 print("Error: Output store '"..to_store.."' not found in the config file.");
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
70 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
71
899ffc1674b5 tools/migration/prosody-migrator.lua: Refactor store handler loading to report errors they throw
Matthew Wild <mwild1@gmail.com>
parents: 4229
diff changeset
72 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
73 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
74 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
75 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
76 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
77 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
78 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
79 if not ok then
8062
739bb455cafd migrator: Remove broken distinction between a load error or a missing storage handler (worked with module()?)
Kim Alvefur <zash@zash.se>
parents: 7895
diff changeset
80 print(("Error: Failed to initialize '%s' store:\n\t%s")
739bb455cafd migrator: Remove broken distinction between a load error or a missing storage handler (worked with module()?)
Kim Alvefur <zash@zash.se>
parents: 7895
diff changeset
81 :format(name, err));
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
82 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
83 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
84 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
85 return true;
4211
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
86 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
87
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 have_err = have_err or not(load_store_handler(from_store, "input") and load_store_handler(to_store, "output"));
4210
4583473dcce4 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: 4166
diff changeset
89
4211
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
90 if have_err then
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
91 print("");
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
92 print("Usage: "..arg[0].." FROM_STORE TO_STORE");
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
93 print("If no stores are specified, 'input' and 'output' are used.");
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
94 print("");
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
95 print("The available stores in your migrator config are:");
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
96 print("");
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
97 for store in pairs(config) do
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
98 print("", store);
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
99 end
4216
ff80a8471e86 tools/migration/*: Numerous changes and restructuring, and the addition of a Makefile
Matthew Wild <mwild1@gmail.com>
parents: 4211
diff changeset
100 print("");
4211
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
101 os.exit(1);
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
102 end
5776
bd0ff8ae98a8 Remove all trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 5021
diff changeset
103
4211
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
104 local itype = config[from_store].type;
9a12fc2baa37 tools/migration/*.lua: Rename config to migrator.cfg.lua, add error handling for config and command-line parameters
Matthew Wild <mwild1@gmail.com>
parents: 4210
diff changeset
105 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: 4211
diff changeset
106 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: 4211
diff changeset
107 local writer = require("migrator."..otype).writer(config[to_store]);
4166
3ac90743039b tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents: 4162
diff changeset
108
3ac90743039b tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents: 4162
diff changeset
109 local json = require "util.json";
3ac90743039b tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents: 4162
diff changeset
110
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
111 io.stderr:write("Migrating...\n");
4166
3ac90743039b tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents: 4162
diff changeset
112 for x in reader do
3ac90743039b tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents: 4162
diff changeset
113 --print(json.encode(x))
3ac90743039b tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents: 4162
diff changeset
114 writer(x);
3ac90743039b tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents: 4162
diff changeset
115 end
3ac90743039b tools/migration/*.lua: Convert to unix line endings
Matthew Wild <mwild1@gmail.com>
parents: 4162
diff changeset
116 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
117 io.stderr:write("Done!\n");