From 4227578cca83e6c9b048768f5b46cb04e7296e13 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 20 Apr 2015 18:37:40 -0400 Subject: script to dump a project as JSON --- server/fetch.js | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 server/fetch.js (limited to 'server/fetch.js') diff --git a/server/fetch.js b/server/fetch.js new file mode 100644 index 0000000..219cc22 --- /dev/null +++ b/server/fetch.js @@ -0,0 +1,40 @@ +var DB_HOST = 'localhost' +var mongoose = require('mongoose') +var _ = require('lodash') +var Project = require("./lib/schemas/Project") + +if (process.argv.length != 3) { + console.error("usage: node fetch.js [project-slug] > project.json") + process.exit() +} +var slug = process.argv[2] + +mongoose.connect('mongodb://' + DB_HOST + '/vvalls', {}, function(){ + console.error("vvalls: connected to", DB_HOST) + Project.findOne({ slug: slug }).exec(function(err, data){ + if (err || ! data) { + console.error("Project " + slug + " not found!") + } + else { + var str = JSON.stringify( simplify(data.toObject()) ).replace(/(\.\d\d\d)\d+/g, "$1") + console.log( str ) + } + process.exit() + }) +}) + +function simplify (data) { + delete data._id + delete data.__v + _(data).keys().forEach(function(key){ + var val = data[key] + if (typeof val != "object") return; + if (val.hasOwnProperty('length')) { + data[key].forEach(simplify) + } + else { + data[key] = simplify(val) + } + }) + return data +} -- cgit v1.2.3-70-g09d2 From fb106d53792b99d2a03325b7fe43b526484d10f0 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 20 Jul 2015 15:16:59 -0400 Subject: misc logging on export script --- server/fetch.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'server/fetch.js') diff --git a/server/fetch.js b/server/fetch.js index 219cc22..b76eeff 100644 --- a/server/fetch.js +++ b/server/fetch.js @@ -10,14 +10,15 @@ if (process.argv.length != 3) { var slug = process.argv[2] mongoose.connect('mongodb://' + DB_HOST + '/vvalls', {}, function(){ - console.error("vvalls: connected to", DB_HOST) + // console.error("vvalls: connected to", DB_HOST) Project.findOne({ slug: slug }).exec(function(err, data){ if (err || ! data) { console.error("Project " + slug + " not found!") } else { + console.error("Exporting " + data.name + " (" + slug + ") as JSON") var str = JSON.stringify( simplify(data.toObject()) ).replace(/(\.\d\d\d)\d+/g, "$1") - console.log( str ) + console.log( "vvalls_data=" + str ) } process.exit() }) -- cgit v1.2.3-70-g09d2