diff options
Diffstat (limited to 'server/fetch.js')
| -rw-r--r-- | server/fetch.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/server/fetch.js b/server/fetch.js new file mode 100644 index 0000000..b76eeff --- /dev/null +++ b/server/fetch.js @@ -0,0 +1,41 @@ +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 { + console.error("Exporting " + data.name + " (" + slug + ") as JSON") + var str = JSON.stringify( simplify(data.toObject()) ).replace(/(\.\d\d\d)\d+/g, "$1") + console.log( "vvalls_data=" + 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 +} |
