#!/usr/bin/env node

'use strict'

require('colors')

const lintCoffeeScriptPaths = require('./lib/lint-coffee-script-paths')
const lintJavaScriptPaths = require('./lib/lint-java-script-paths')
const lintLessPaths = require('./lib/lint-less-paths')
const path = require('path')

const CONFIG = require('./config')

process.on('unhandledRejection', function (e) {
  console.error(e.stack || e)
  process.exit(1)
})

Promise.all([lintCoffeeScriptPaths(), lintJavaScriptPaths(), lintLessPaths()])
  .then((lintResults) => {
    let hasLintErrors = false
    for (let errors of lintResults) {
      for (let error of errors) {
        hasLintErrors = true
        const relativePath = path.relative(CONFIG.repositoryRootPath, error.path)
        console.log(`${relativePath}:${error.lineNumber}`.yellow + ` ${error.message} (${error.rule})`.red)
      }
    }
    if (hasLintErrors) {
      process.exit(1)
    } else {
      console.log('No lint errors!'.green)
      process.exit(0)
    }
  })
