1 |
|
2 | (function() {
|
3 | var bluebird, info, request;
|
4 |
|
5 | bluebird = require('bluebird');
|
6 |
|
7 | request = require('sync-request');
|
8 |
|
9 | request = bluebird.promisifyAll(request);
|
10 |
|
11 | info = function(opts) {
|
12 | var access_token_url, autocode, headers, module, name, repo_url, resp;
|
13 | autocode = this;
|
14 | if (typeof opts === 'object') {
|
15 | if (opts._ && opts._[1]) {
|
16 | name = opts._[1];
|
17 | } else if (opts.name) {
|
18 | name = opts.name;
|
19 | }
|
20 | } else if (typeof name === 'string') {
|
21 | name = opts;
|
22 | }
|
23 | if (!name) {
|
24 | throw new Error("'name' is required for autocode search");
|
25 | }
|
26 | headers = {
|
27 | 'User-Agent': 'Autocode <support@autocode.run> (https://autocode.run/autocode)'
|
28 | };
|
29 | access_token_url = '';
|
30 | if (process.env.GITHUB_ACCESS_TOKEN) {
|
31 | access_token_url += "?access_token=" + process.env.GITHUB_ACCESS_TOKEN;
|
32 | }
|
33 | console.log(("Getting info for " + name + "...").blue);
|
34 | repo_url = "https://api.github.com/repos/" + name + "/releases/latest" + access_token_url;
|
35 | resp = request('get', repo_url, {
|
36 | headers: headers,
|
37 | allowRedirectHeaders: ['User-Agent']
|
38 | });
|
39 | if (resp.statusCode !== 200) {
|
40 | if (resp.statusCode === 404) {
|
41 | throw new Error("Module does not exist: " + name);
|
42 | } else {
|
43 | throw new Error('Unable to get info.');
|
44 | }
|
45 | }
|
46 | module = JSON.parse(resp.body);
|
47 | return console.log("Latest Version: ".bold + module.tag_name.substr(1));
|
48 | };
|
49 |
|
50 | module.exports = info;
|
51 |
|
52 | }).call(this);
|