-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupload-crash-reports.js
48 lines (42 loc) · 1.25 KB
/
upload-crash-reports.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
'use strict';
const glob = require('glob');
const uploadToS3 = require('./lib/upload-to-s3');
const yargs = require('yargs');
const argv = yargs
.usage('Usage: $0 [options]')
.help('help')
.describe(
'crash-report-path',
'The local path of a directory containing crash reports to upload'
)
.describe(
's3-path',
'Indicates the S3 path in which the crash reports should be uploaded'
)
.wrap(yargs.terminalWidth()).argv;
async function uploadCrashReports() {
const crashesPath = argv.crashReportPath;
const crashes = glob.sync('/*.dmp', { root: crashesPath });
const bucketPath = argv.s3Path;
if (crashes && crashes.length > 0) {
console.log(
`Uploading ${
crashes.length
} private crash reports to S3 under '${bucketPath}'`
);
await uploadToS3(
process.env.ATOM_RELEASES_S3_KEY,
process.env.ATOM_RELEASES_S3_SECRET,
process.env.ATOM_RELEASES_S3_BUCKET,
bucketPath,
crashes,
'private'
);
}
}
// Wrap the call the async function and catch errors from its promise because
// Node.js doesn't yet allow use of await at the script scope
uploadCrashReports().catch(err => {
console.error('An error occurred while uploading crash reports:\n\n', err);
process.exit(1);
});