forked from benweet/stackedit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
couchdb_transfer.js
48 lines (38 loc) · 1.3 KB
/
couchdb_transfer.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
yamlJs = require("yamljs");
uploadFile = require("./upload-doc.js");
uploadAllDocs = require("./upload-all-docs.js");
downloadAllDocs = require("./download-all-docs.js");
if (!(process.argv[2].match("(im|ex)port")) ||
process.argv.length < 4) {
throw "couchdb_transfer.js <export|import> <course> <folder> <filespec...>";
}
var configRootPath = (process.env.DTU_DATA_ROOT || "/vol") + "/config/";
var course = process.argv[3];
var upload = process.argv[2] !== 'export';
console.log(process.argv);
try {
fileName = configRootPath + 'couchdb.yaml';
console.log(fileName);
var couchdbConfig = yamlJs.load(fileName);
if (!couchdbConfig.hasOwnProperty(course) || !couchdbConfig[course].hasOwnProperty('db')) {
throw "Course " + course + " doesn't have a db defined in " + fileName;
}
var dbUrl = couchdbConfig[course].db;
var coursedb = "db" + course;
var folder = process.argv[4] || '.';
if (upload) {
console.log("Importing " + dbUrl + " from " + folder + "...");
uploadAllDocs(dbUrl, coursedb, folder);
} else {
console.log("Exporting to " + dbUrl + "... ");
var filespec = process.argv.slice(5);
console.log(filespec);
downloadAllDocs(dbUrl, coursedb, folder, filespec);
}
} catch (e) {
courseInfo = {
error: e,
fileName: fileName
};
}
console.log('done');