install(options) {
    this._processOptions(options);

    this.hasPathToken = hasPathToken(this.files(this.options));

    this.ui.writeLine(`installing ${this.name}`);

    if (this.dryRun) {
      this.ui.writeLine(chalk.yellow('You specified the `dry-run` flag, so no changes will be written.'));
    }

    this._normalizeEntityName(options.entity);
    this._checkForPod(options.verbose);
    this._checkInRepoAddonExists(options);

    logger.info('START: processing blueprint: `%s`', this.name);
    let start = new Date();
    return this._process(options, this.beforeInstall, this.processFiles, this.afterInstall).finally(() =>
      logger.info('END: processing blueprint: `%s` in (%dms)', this.name, new Date() - start)
    );
  }
@method install
    @param {Object} options
    @return {Promise}