UNPKG

@git.zone/cli

Version:

A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.

78 lines (69 loc) 3.12 kB
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!`); } };