/*!
 * node-sass: lib/errors.js
 */

var sass = require('./extensions'),
  pkg = require('../package.json');

function humanEnvironment() {
  return sass.getHumanEnvironment(sass.getBinaryName());
}

function foundBinaries() {
  return [
    'Found bindings for the following environments:',
    foundBinariesList(),
  ].join('\n');
}

function foundBinariesList() {
  return sass.getInstalledBinaries().map(function(env) {
    return '  - ' + sass.getHumanEnvironment(env);
  }).join('\n');
}

function missingBinaryFooter() {
  return [
    'This usually happens because your environment has changed since running `npm install`.',
    'Run `npm rebuild node-sass --force` to build the binding for your current environment.',
  ].join('\n');
}

module.exports.unsupportedEnvironment = function() {
  return [
    'Node Sass does not yet support your current environment: ' + humanEnvironment(),
    'For more information on which environments are supported please see:',
    'https://github.com/sass/node-sass/releases/tag/v' + pkg.version
  ].join('\n');
};

module.exports.missingBinary = function() {
  return [
    'Missing binding ' + sass.getBinaryPath(),
    'Node Sass could not find a binding for your current environment: ' + humanEnvironment(),
    '',
    foundBinaries(),
    '',
    missingBinaryFooter(),
  ].join('\n');
};

/*!
 * node-sass: lib/errors.js
 */

var sass = require('./extensions'),
  pkg = require('../package.json');

function humanEnvironment() {
  return sass.getHumanEnvironment(sass.getBinaryName());
}

function foundBinaries() {
  return [
    'Found bindings for the following environments:',
    foundBinariesList(),
  ].join('\n');
}

function foundBinariesList() {
  return sass.getInstalledBinaries().map(function(env) {
    return '  - ' + sass.getHumanEnvironment(env);
  }).join('\n');
}

function missingBinaryFooter() {
  return [
    'This usually happens because your environment has changed since running `npm install`.',
    'Run `npm rebuild node-sass` to download the binding for your current environment.',
  ].join('\n');
}

module.exports.unsupportedEnvironment = function() {
  return [
    'Node Sass does not yet support your current environment: ' + humanEnvironment(),
    'For more information on which environments are supported please see:',
    'https://github.com/sass/node-sass/releases/tag/v' + pkg.version
  ].join('\n');
};

module.exports.missingBinary = function() {
  return [
    'Missing binding ' + sass.getBinaryPath(),
    'Node Sass could not find a binding for your current environment: ' + humanEnvironment(),
    '',
    foundBinaries(),
    '',
    missingBinaryFooter(),
  ].join('\n');
};

Stop telling people to run npm rebuild with --force
Stop telling people to run npm rebuild with --force

This forces a local compilation (slow) when they just want to
download right binary (fast).
