Files
xod/tools/electron-upload.js
Evgeny Kochetkov c90d94ff0e fix(infra): fix upload to gcs
by @alexander-matsievsky
2017-10-21 10:00:44 +03:00

29 lines
920 B
JavaScript

// eslint-disable-next-line import/no-extraneous-dependencies
const docopt = require('docopt');
const path = require('path');
const storage = require('@google-cloud/storage');
const options = docopt.docopt(`
Uploads a release file to 'releases.xod.io' GCS bucket under tag directory.
Usage: electron-upload --config=<path-to-config> --file=<path-to-file> --tag=<tag>
`);
const resolve = path.resolve.bind(path, process.cwd());
const keyFilename = resolve(options['--config']);
const file = resolve(options['--file']);
const tag = options['--tag'];
const basename = path.basename(file);
storage({ keyFilename }).bucket('releases.xod.io')
.upload(file, {
destination: `${tag}/${basename}`,
metadata: {
contentDisposition: `attachment; filename="${basename}"`,
},
public: true,
})
.catch((error) => {
// eslint-disable-next-line no-console
console.error(error);
process.exit(1);
});