#!/usr/bin/env node /* globals process */ var Config = require("./config"); var Fs = require("fs"); var Storage = require(Config.storage); var args = process.argv.slice(2); if (!args.length) { console.log("Insufficient arguments!"); console.log("Pass a path to a database backup!"); process.exit(); } var dump = Fs.readFileSync(args[0], 'utf-8'); var ready = function (store) { var lock = 0; dump.split(/\n/) .filter(function (line) { return line; }) .forEach(function (line, i) { lock++; var parts; var channel; var msg; line.replace(/^(.*?)\|(.*)$/, function (all, c, m) { channel = c; msg = m; return ''; }); if (!channel || !msg) { console.log("BAD LINE on line %s", i); return; } try { JSON.parse(msg); } catch (err) { console.log("BAD LINE on line %s", i); console.log(msg); console.log(); } store.message(channel, msg, function () { console.log(line); lock--; if (!lock) { console.log("DONE"); process.exit(0); } }); }); }; Storage.create(Config, function (store) { console.log("READY"); ready(store); });