forked from edtechhub/zotzen-cli
-
Notifications
You must be signed in to change notification settings - Fork 0
/
zotzen-helper.js
64 lines (61 loc) · 1.8 KB
/
zotzen-helper.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
const childProcess = require('child_process');
const fs = require('fs');
const opn = require('opn');
const path = require('path');
const prompt = require('prompt');
async function zotzenInit(args) {
if (args.debug) {
console.log('DEBUG: zotzenInit');
}
console.log(JSON.stringify(args, null, 2));
const schema = {
properties: {
'Zenodo API Key': {
message: 'Please enter you Zenodo API Key. (Enter to ignore)',
},
'Zotero API Key': {
message: 'Please enter your Zotero API Key. (Enter to ignore)',
},
'Zotero User ID': {
message: 'Please enter your Zotero User ID. (Enter to ignore)',
},
'Zotero Group ID': {
message: 'Please enter your Zotero Group ID. (Enter to ignore)',
},
},
};
prompt.start();
prompt.get(schema, (err, result) => {
if (err) {
console.err('Invalid input received');
} else {
const zenKey = result['Zenodo API Key'];
if (zenKey) {
fs.writeFileSync(
'zenodo-cli/config.json',
JSON.stringify({
accessToken: zenKey,
})
);
console.log(
'Zenodo config wrote successfully to zenodo-cli/config.json.'
);
}
const zotKey = result['Zotero API Key'];
const zotUid = result['Zotero User ID'];
const zotGid = result['Zotero Group ID'];
if (zotKey || zotUid || zotGid) {
fs.writeFileSync(
'zotero-cli/zotero-cli.toml',
`${zotKey ? 'api-key="' + zotKey + '"\n' : ''}` +
`${zotUid ? 'user-id="' + zotUid + '"\n' : ''}` +
`${zotGid ? 'group-id="' + zotGid + '"\n' : ''}`
);
console.log(
'Zotero config wrote successfully to zotero-cli/zotero-cli.toml'
);
}
}
});
}
exports.zotzenInit = zotzenInit;