86 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import * as plugins from './mod.plugins.js';
 | 
						|
import * as paths from '../paths.js';
 | 
						|
 | 
						|
import { logger } from '../gitzone.logging.js';
 | 
						|
import { Project } from '../classes.project.js';
 | 
						|
 | 
						|
/**
 | 
						|
 * takes care of updating files from templates
 | 
						|
 */
 | 
						|
export const run = async (project: Project) => {
 | 
						|
  const templateModule = await import('../mod_template/index.js');
 | 
						|
 | 
						|
  // update tslint
 | 
						|
  // getting template
 | 
						|
  const tslintTemplate = await templateModule.getTemplate('tslint');
 | 
						|
  await tslintTemplate.writeToDisk(paths.cwd);
 | 
						|
  logger.log('info', 'Updated tslint.json!');
 | 
						|
 | 
						|
  // update vscode
 | 
						|
  const vscodeTemplate = await templateModule.getTemplate('vscode');
 | 
						|
  await vscodeTemplate.writeToDisk(paths.cwd);
 | 
						|
  logger.log('info', `Updated vscode template!`);
 | 
						|
 | 
						|
  // update gitlab ci and Dockerfile
 | 
						|
  switch (project.gitzoneConfig.data.projectType) {
 | 
						|
    case 'npm':
 | 
						|
    case 'wcc':
 | 
						|
      if (project.gitzoneConfig.data.npmciOptions.npmAccessLevel === 'public') {
 | 
						|
        const ciTemplateDefault =
 | 
						|
          await templateModule.getTemplate('ci_default');
 | 
						|
        ciTemplateDefault.writeToDisk(paths.cwd);
 | 
						|
      } else {
 | 
						|
        const ciTemplateDefault =
 | 
						|
          await templateModule.getTemplate('ci_default_private');
 | 
						|
        ciTemplateDefault.writeToDisk(paths.cwd);
 | 
						|
      }
 | 
						|
      logger.log('info', 'Updated .gitlabci.yml!');
 | 
						|
      break;
 | 
						|
    case 'service':
 | 
						|
    case 'website':
 | 
						|
      const ciTemplateDocker = await templateModule.getTemplate('ci_docker');
 | 
						|
      await ciTemplateDocker.writeToDisk(paths.cwd);
 | 
						|
      logger.log('info', 'Updated CI/CD config files!');
 | 
						|
 | 
						|
      // lets care about docker
 | 
						|
      const dockerTemplate =
 | 
						|
        await templateModule.getTemplate('dockerfile_service');
 | 
						|
      dockerTemplate.writeToDisk(paths.cwd);
 | 
						|
      logger.log('info', 'Updated Dockerfile!');
 | 
						|
 | 
						|
      // lets care about cli
 | 
						|
      const cliTemplate = await templateModule.getTemplate('cli');
 | 
						|
      await cliTemplate.writeToDisk(paths.cwd);
 | 
						|
      logger.log('info', 'Updated cli.ts.js and cli.js!');
 | 
						|
      break;
 | 
						|
    default:
 | 
						|
      break;
 | 
						|
  }
 | 
						|
 | 
						|
  // update html
 | 
						|
  if (project.gitzoneConfig.data.projectType === 'website') {
 | 
						|
    const websiteUpdateTemplate =
 | 
						|
      await templateModule.getTemplate('website_update');
 | 
						|
    const variables = {
 | 
						|
      assetbrokerUrl: project.gitzoneConfig.data.module.assetbrokerUrl,
 | 
						|
      legalUrl: project.gitzoneConfig.data.module.legalUrl,
 | 
						|
    };
 | 
						|
    console.log(
 | 
						|
      'updating website template with variables\n',
 | 
						|
      JSON.stringify(variables, null, 2),
 | 
						|
    );
 | 
						|
    websiteUpdateTemplate.supplyVariables(variables);
 | 
						|
    await websiteUpdateTemplate.writeToDisk(paths.cwd);
 | 
						|
    logger.log('info', `Updated html for website!`);
 | 
						|
  } else if (project.gitzoneConfig.data.projectType === 'service') {
 | 
						|
    const websiteUpdateTemplate =
 | 
						|
      await templateModule.getTemplate('service_update');
 | 
						|
    await websiteUpdateTemplate.writeToDisk(paths.cwd);
 | 
						|
    logger.log('info', `Updated html for element template!`);
 | 
						|
  } else if (project.gitzoneConfig.data.projectType === 'wcc') {
 | 
						|
    const wccUpdateTemplate = await templateModule.getTemplate('wcc_update');
 | 
						|
    await wccUpdateTemplate.writeToDisk(paths.cwd);
 | 
						|
    logger.log('info', `Updated html for wcc template!`);
 | 
						|
  }
 | 
						|
};
 |