-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.js
More file actions
executable file
·73 lines (66 loc) · 2.23 KB
/
index.js
File metadata and controls
executable file
·73 lines (66 loc) · 2.23 KB
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
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/env node
const request = require('request');
const fs = require('fs');
const program = require('commander');
const ProgressBar = require('progress');
const db = require('./db');
program
.command('config')
.option('-p, --preset <preset>', 'Set preset name with config option.')
.option('-c, --cloudname <cloudname>', 'Set cloud name with config option.')
.action(function (command) {
if (!(command.cloudname && command.preset)) {
console.log("Provide preset name with -p option and cloud name with -c.");
return;
}
var config = {
cloudName: command.cloudname,
preset: command.preset
}
console.log("Credentials are set.");
db.storeConfig(config);
})
program
.command('reset')
.action(function (command) {
db.resetConfig();
console.log("Credentials are removed.");
})
program
.command('*')
.arguments('<file>')
.action(function (file) {
const config = db.getConfig();
const cloudName = config.cloudName;
const preset = config.preset;
if (!(cloudName && preset)) {
console.log('Please set cloud name and preset with config command.');
return;
}
const formData = {
upload_preset: preset,
file: fs.createReadStream(file)
}
const fileSize = fs.statSync(file).size;
const fileStream = formData.file;
const barOpts = {
width: 50,
total: fileSize,
clear: true
};
const bar = new ProgressBar(' uploading [:bar] :percent :etas', barOpts);
fileStream.on('data', function (chunk) {
bar.tick(chunk.length);
});
const url = "https://api.cloudinary.com/v1_1/" + cloudName + "/image/upload";
request.post({ url: url, formData: formData }, function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log('Upload successful!');
var data = JSON.parse(body);
console.log(data.url);
console.log(data.secure_url);
});
})
program.parse(process.argv);