text: 'use strict'
  
  const stylelint = require('stylelint')
  const path = require('path')
  
  const CONFIG = require('../config')
  
  module.exports = function () {
    return stylelint
      .lint({
        files: path.join(CONFIG.repositoryRootPath, 'static/**/*.less'),
        configBasedir: __dirname,
        configFile: path.resolve(__dirname, '..', '..', 'stylelint.config.js')
      })
      .then(({results}) => {
        const errors = []
  
        for (const result of results) {
          for (const deprecation of result.deprecations) {
            console.log('stylelint encountered deprecation:', deprecation.text)
            if (deprecation.reference != null) {
              console.log('more information at', deprecation.reference)
            }
          }
  
          for (const invalidOptionWarning of result.invalidOptionWarnings) {
            console.warn(
              'stylelint encountered invalid option:',
              invalidOptionWarning.text
            )
          }
  
          if (result.errored) {
            for (const warning of result.warnings) {
              if (warning.severity === 'error') {
                errors.push({
                  path: result.source,
                  lineNumber: warning.line,
                  message: warning.text,
                  rule: warning.rule
                })
              } else {
                console.warn(
                  'stylelint encountered non-critical warning in file',
                  result.source,
                  'at line',
                  warning.line,
                  'for rule',
                  warning.rule + ':',
                  warning.text
                )
              }
            }
          }
        }
  
        return errors
      })
      .catch(err => {
        console.error('There was a problem linting LESS:')
        throw err
      })
  }
  