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 .gitlabci.yml!'); // 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'); 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!`); } };