<commit_before>var fs = require('fs');
var async = require('async');
var open = require('open');
var generator = require('yeoman-generator');
var util = require('util');
var path = require('path');


// The `yo yo` generator provides users with a few common, helpful commands.
var yoyo = module.exports = function yoyo() {
  generator.Base.apply(this, arguments);

  process.on('exit', this._exit);
};

util.inherits(yoyo, generator.Base);


// Runs parallel `npm update -g`s for each detected generator.
yoyo.prototype._updateGenerators = function _updateGenerators() {
  var self = this;

  var resolveGenerators = function (pkg) {
    return function (next) {
      self.spawnCommand('npm', ['update', '-g', pkg.name])
        .on('error', next)
        .on('exit', next);
    };
  };

  async.parallel(self._.map(self.pkgs, resolveGenerators), function (err) {
    if (err) {
      return self.emit('error', err);
    }

    self.home({
      message: 'You\'re all set! Is there anything else I can get you?'
    });
  });
};

<commit_msg>Prevent showing exit message twice<commit_after>var fs = require('fs');
var async = require('async');
var open = require('open');
var generator = require('yeoman-generator');
var util = require('util');
var path = require('path');


// The `yo yo` generator provides users with a few common, helpful commands.
var yoyo = module.exports = function yoyo() {
  generator.Base.apply(this, arguments);

  process.once('exit', this._exit);
};

util.inherits(yoyo, generator.Base);


// Runs parallel `npm update -g`s for each detected generator.
yoyo.prototype._updateGenerators = function _updateGenerators() {
  var self = this;

  var resolveGenerators = function (pkg) {
    return function (next) {
      self.spawnCommand('npm', ['update', '-g', pkg.name])
        .on('error', next)
        .on('exit', next);
    };
  };

  async.parallel(self._.map(self.pkgs, resolveGenerators), function (err) {
    if (err) {
      return self.emit('error', err);
    }

    self.home({
      message: 'You\'re all set! Is there anything else I can get you?'
    });
  });
};


{'fraction_non_alphanumeric': 0.1602655286865813, 'fraction_numerical': 0.0, 'mean_word_length': 3.5376344086021505, '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': '2581047', 'n_tokens_mistral': 670, 'n_tokens_neox': 642, 'n_words': 190}