hunk.code_window:       return null;
       }
       const cliConfig = CliConfigBase.fromConfigPath<ConfigInterface>(
         CliConfig.configFilePath(), [globalConfigPath]);
       const aliases = [
         cliConfig.alias('apps.0.root', 'defaults.sourceDir'),
  
hunk.labels: keep keep add keep keep keep keep keep
hunk.after_edit:     let globalConfigPath = path.join(getUserHome(), CLI_CONFIG_FILE_NAME);
       const altGlobalConfigPath = path.join(getUserHome(), CLI_CONFIG_FILE_NAME_ALT);
       if (!fs.existsSync(globalConfigPath) && fs.existsSync(altGlobalConfigPath)) {
         globalConfigPath = altGlobalConfigPath;
       }
  
hunk.file_path: packages/@angular/cli/models/config.ts
hunk.type: add
file: import * as chalk from 'chalk';
  import LinkCli from '../tasks/link-cli';
  import NpmInstall from '../tasks/npm-install';
  import { validateProjectName } from '../utilities/validate-project-name';
  import {checkYarnOrCNPM} from '../utilities/check-package-manager';
  import {CliConfig} from '../models/config';
  
  const Task = require('../ember-cli/lib/models/task');
  const Promise = require('../ember-cli/lib/ext/promise');
  const SilentError = require('silent-error');
  const normalizeBlueprint = require('../ember-cli/lib/utilities/normalize-blueprint-option');
  const GitInit = require('../tasks/git-init');
  
  
  export default Task.extend({
    run: function (commandOptions: any, rawArgs: string[]) {
      if (commandOptions.dryRun) {
        commandOptions.skipInstall = true;
      }
  
      const installBlueprint = new this.tasks.InstallBlueprint({
        ui: this.ui,
        project: this.project
      });
  
      // needs an explicit check in case it's just 'undefined'
      // due to passing of options from 'new' and 'addon'
      let gitInit: any;
      if (commandOptions.skipGit === false) {
        gitInit = new GitInit({
          ui: this.ui,
          project: this.project
        });
      }
  
      let npmInstall: any;
      if (!commandOptions.skipInstall) {
        const packageManager = CliConfig.fromGlobal().get('packageManager');
        npmInstall = new NpmInstall({
          ui: this.ui,
          project: this.project,
          packageManager
        });
      }
  
      let linkCli: any;
      if (commandOptions.linkCli) {
        linkCli = new LinkCli({
          ui: this.ui,
          project: this.project
        });
      }
  
      const project = this.project;
      const packageName = commandOptions.name !== '.' && commandOptions.name || project.name();
  
      if (!packageName) {
        const message = 'The `ng ' + this.name + '` command requires a ' +
          'package.json in current folder with name attribute or a specified name via arguments. ' +
          'For more details, use `ng help`.';
  
        return Promise.reject(new SilentError(message));
      }
  
      const blueprintOpts = {
        dryRun: commandOptions.dryRun,
        blueprint: 'ng2',
        rawName: packageName,
        targetFiles: rawArgs || '',
        rawArgs: rawArgs.toString(),
        sourceDir: commandOptions.sourceDir,
        style: commandOptions.style,
        prefix: commandOptions.prefix,
        routing: commandOptions.routing,
        inlineStyle: commandOptions.inlineStyle,
        inlineTemplate: commandOptions.inlineTemplate,
        ignoredUpdateFiles: ['favicon.ico'],
        ng4: commandOptions.ng4,
        skipGit: commandOptions.skipGit,
        skipTests: commandOptions.skipTests
      };
  
      validateProjectName(packageName);
  
      blueprintOpts.blueprint = normalizeBlueprint(blueprintOpts.blueprint);
  
      return installBlueprint.run(blueprintOpts)
        .then(function () {
          if (commandOptions.skipGit === false) {
            return gitInit.run(commandOptions, rawArgs);
          }
        })
        .then(function () {
          if (!commandOptions.skipInstall) {
            return npmInstall.run();
          }
        })
        .then(function () {
          if (commandOptions.linkCli) {
            return linkCli.run();
          }
        })
        .then(checkYarnOrCNPM)
        .then(() => {
          this.ui.writeLine(chalk.green(`Project '${packageName}' successfully created.`));
        });
    }
  });
  
  