summaryrefslogtreecommitdiff
path: root/server/fetch.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/fetch.js')
-rw-r--r--server/fetch.js41
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
+}