Example #1
0
/**
 * Get a description for the given generator. If this is an external generator,
 * read the description from its package.json.
 */
function getGeneratorDescription(generator: YeomanEnvironment.GeneratorMeta, generatorName: string): GeneratorDescription {
  let name = getDisplayName(generatorName);
  let description = 'no description';

  if (templateDescriptions.hasOwnProperty(name)) {
    description = templateDescriptions[name];
  } else if (generator.resolved && generator.resolved !== 'unknown') {
    try {
      let metapath = findup.sync(generator.resolved, 'package.json');
      let meta = JSON.parse(fs.readFileSync(metapath, 'utf8'));
      description = meta.description;
    } catch (err) {
      if (err.message === 'not found') {
        logger.debug('no package.json found for generator');
      } else {
        logger.debug('problem reading/parsing package.json for generator', {
          generator: generatorName,
          err: err.message,
        });
      }
    }
  }

  return {
    name: `${name}: ${chalk.dim(description)}`,
    value: generatorName,
    // inquirer is broken and doesn't print descriptions :(
    // keeping this so things work when it does
    short: name,
  };
}
Example #2
0
function getGulpfile(): any {
  // TODO: Should we really be searching procses.cwd()? What about config.root?
  let foundGulpfileDir = findup.sync(process.cwd(), 'gulpfile.js');
  if (foundGulpfileDir) {
    let gulpfulePath = path.join(foundGulpfileDir, 'gulpfile.js');
    logger.debug('found gulpfile', { path: gulpfulePath });
    return require(gulpfulePath);
  }

  logger.debug(`no gulpfile found (searched up from ${process.cwd()})`);
  return null;
}