diff options
| author | Jules Laplace <jules@okfoc.us> | 2015-04-20 18:37:40 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2015-04-20 18:37:40 -0400 |
| commit | 4227578cca83e6c9b048768f5b46cb04e7296e13 (patch) | |
| tree | 0692f5a14874290a6acefd90eb67e135f3f6eaaa | |
| parent | 7fd34f49fea785f11320eec412a95726cbcf7349 (diff) | |
script to dump a project as JSON
| -rw-r--r-- | server/fetch.js | 40 |
1 files changed, 40 insertions, 0 deletions
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 +} |
