aboutsummaryrefslogtreecommitdiff
path: root/lib/handleInput.js
blob: be85c4a4cad36f85aed8b321a3f30fa9b2c8e336 (plain)
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
var fs = require('fs');
var path = require('path');
var YAML = require('libyaml');
var sendToCoveralls = require('../index').sendToCoveralls;
var convertLcovToCoveralls = require('../index').convertLcovToCoveralls;

var handleInput = function(input, options){
  options.verbose && console.log(input);

  if (process.env.COVERALLS_REPO_TOKEN) {
    options.repo_token = process.env.COVERALLS_REPO_TOKEN;
  } else {
    var yml = path.join(process.cwd(), '.coveralls.yml');
    try {
      if (fs.statSync(yml).isFile()) {
        options.repo_token = YAML.readFileSync(yml)[0].repo_token;
      }
    } catch(ex){
      console.warn("Repo token could not be determined.  Continuing without it.");
    }
  }

  convertLcovToCoveralls(input, options, function(err, postData){
    if (err){
      console.error("error from convertLcovToCoveralls");
      throw err;
    }
    options.verbose && console.info("sending this to coveralls.io: ", postData);
    sendToCoveralls(postData, function(err, response, body){
      if (err){
        throw err;
      }
      if (response.statusCode >= 400){
        throw "Bad response: " + response.statusCode + " " + body;
      }
      options.verbose && console.log(response.statusCode);
      options.verbose && console.log(body);
    });
  });

};

module.exports = handleInput;