summaryrefslogtreecommitdiff
path: root/server/fetch.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2016-10-28 18:07:56 -0400
committerJules Laplace <jules@okfoc.us>2016-10-28 18:07:56 -0400
commita9c9d6adf470d0966e6c6bef0803e298fd2d4117 (patch)
tree6ccec2a448992a5f43226532051a6df09afbc203 /server/fetch.js
parent343b0b3dc5bb7dbe762182a486e63a4aff6ef8fc (diff)
parent9e7bacd46c1e5d0e1c24433690d421ab3f3a11f2 (diff)
merge
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
+}