summaryrefslogtreecommitdiff
path: root/server/fetch.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2015-04-20 18:37:40 -0400
committerJules Laplace <jules@okfoc.us>2015-04-20 18:37:40 -0400
commit4227578cca83e6c9b048768f5b46cb04e7296e13 (patch)
tree0692f5a14874290a6acefd90eb67e135f3f6eaaa /server/fetch.js
parent7fd34f49fea785f11320eec412a95726cbcf7349 (diff)
script to dump a project as JSON
Diffstat (limited to 'server/fetch.js')
-rw-r--r--server/fetch.js40
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
+}