72 lines
2.7 KiB
TypeScript
72 lines
2.7 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 .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!`);
|
||
|
}
|
||
|
};
|