1 | #!/usr/bin/env node
|
2 |
|
3 | 'use strict';
|
4 | if (!module.parent)
|
5 | global.zon_config_fallback = {};
|
6 | require('../../util/config.js');
|
7 | const etask = require('../../util/etask.js');
|
8 | const cli = require('../../util/cli.js');
|
9 | const oss = require('ali-oss');
|
10 | const cli_opt = [
|
11 | ['', 'key-id=KEY_ID', 'Alibaba AccessKeyId'],
|
12 | ['', 'key-secret=KEY_SECRET', 'Alibaba AccessKeySecret'],
|
13 | ['', 'version=VERSION', 'Version being released'],
|
14 | ];
|
15 | cli.getopt(cli_opt, 'Usage: publish_cn.js\n\n[[OPTIONS]]\n');
|
16 |
|
17 | const alibaba_release = opt=>etask(function*(){
|
18 | const client = new oss({
|
19 | region: 'oss-cn-hongkong',
|
20 | accessKeyId: opt.key_id,
|
21 | accessKeySecret: opt.key_secret,
|
22 | bucket: 'lpmtest',
|
23 | timeout: '600s',
|
24 | });
|
25 | const filename = `luminati-proxy-${cli.opt.version}-setup.exe`;
|
26 | console.log('Uploading %s to alibaba', filename);
|
27 | const res = yield client.put(filename, opt.exe_path);
|
28 | if (res.res.status==200)
|
29 | console.log('Upload completed successfully');
|
30 | else
|
31 | console.log('Error %s %s', res.res.status, res.res.statusMessage);
|
32 | });
|
33 |
|
34 | const main = ()=>etask(function*(){
|
35 | try {
|
36 | cli.process_args();
|
37 | yield _main();
|
38 | } catch(e){
|
39 | console.log(e.stack);
|
40 | cli.exit('Publish error:', e);
|
41 | }
|
42 | });
|
43 |
|
44 | const _main = ()=>etask(function*(){
|
45 | if (!cli.opt.key_id || !cli.opt.key_secret || !cli.opt.version)
|
46 | {
|
47 | console.log('You need to pass --version --key-id and --key-secret');
|
48 | return;
|
49 | }
|
50 | const exe_path = `/tmp/luminati-proxy-${cli.opt.version}-setup.exe`;
|
51 | yield alibaba_release({exe_path, key_id: cli.opt.key_id,
|
52 | key_secret: cli.opt.key_secret});
|
53 | });
|
54 |
|
55 | if (!module.parent)
|
56 | main();
|