<commit_before>'use strict';
var path = require('path');
var eachAsync = require('each-async');
var assign = require('object-assign');
var sass = require('node-sass');

module.exports = function (grunt) {

  grunt.verbose.writeln('\n' + sass.info + '\n');

  grunt.registerMultiTask('sass', 'Compile Sass to CSS', function () {

    var done = this.async();
    var counter = 0;

    eachAsync(this.files, function (el, i, next) {
          var opts = this.options({
            precision: 10
          });

          var src = el.src[0];

          if (!src || path.basename(src)[0] === '_') {
            next();
            return;
          }

          sass.render(assign({}, opts, {
            file: src,
            outFile: el.dest
          }), function (err, res) {
            if (err) {
              grunt.log.error(err.message + '\n  ' + 'Line ' + err.line + '  Column ' + err.column + '  ' + path.relative(process.cwd(), err.file) + '\n');
              grunt.warn('');
              next(err);
              return;
            }

            grunt.file.write(el.dest, res.css);
            counter++;

            if (opts.sourceMap) {
              grunt.file.write(this.options.sourceMap, res.map);
            }

            next();
          });
        }.bind(this), function (err) {
          grunt.log.writeln(counter === 1 ? counter + ' stylesheet processed.' : counter + ' stylesheets processed.');
          done(err);
        }
    );
  });
};<commit_msg>Changed to grunt.log.ok and grunt utils for output<commit_after>'use strict';
var path = require('path');
var eachAsync = require('each-async');
var assign = require('object-assign');
var sass = require('node-sass');

module.exports = function (grunt) {

  grunt.verbose.writeln('\n' + sass.info + '\n');

  grunt.registerMultiTask('sass', 'Compile Sass to CSS', function () {

    var done = this.async();
    var counter = 0;

    eachAsync(this.files, function (el, i, next) {
          var opts = this.options({
            precision: 10
          });

          var src = el.src[0];

          if (!src || path.basename(src)[0] === '_') {
            next();
            return;
          }

          sass.render(assign({}, opts, {
            file: src,
            outFile: el.dest
          }), function (err, res) {
            if (err) {
              grunt.log.error(err.message + '\n  ' + 'Line ' + err.line + '  Column ' + err.column + '  ' + path.relative(process.cwd(), err.file) + '\n');
              grunt.warn('');
              next(err);
              return;
            }

            grunt.file.write(el.dest, res.css);
            counter++;

            if (opts.sourceMap) {
              grunt.file.write(this.options.sourceMap, res.map);
            }

            next();
          });
        }.bind(this), function (err) {
          grunt.log.ok(counter + ' ' + grunt.util.pluralize(counter, 'stylesheet/stylesheets') + ' processed.');
          done(err);
        }
    );
  });
};
{'fraction_non_alphanumeric': 0.16772257419139713, 'fraction_numerical': 0.003667889296432144, 'mean_word_length': 1.6809651474530831, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1299824', 'n_tokens_mistral': 931, 'n_tokens_neox': 902, 'n_words': 189}