@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.
47 lines • 4.08 kB
JavaScript
import * as plugins from './mod.plugins.js';
import * as paths from '../paths.js';
import { logger } from '../gitzone.logging.js';
export const getTemplatePath = (templateNameArg) => {
return plugins.path.join(paths.templatesDir, templateNameArg);
};
/**
* receives a template name and returns wether there is a corresponding template
*/
export const isTemplate = async (templateNameArg) => {
return plugins.smartfile.fs.isDirectory(getTemplatePath(templateNameArg));
};
export const getTemplate = async (templateNameArg) => {
if (isTemplate(templateNameArg)) {
const localScafTemplate = new plugins.smartscaf.ScafTemplate(getTemplatePath(templateNameArg));
await localScafTemplate.readTemplateFromDir();
return localScafTemplate;
}
else {
return null;
}
};
export const run = async (argvArg) => {
let chosenTemplate = argvArg._[1];
if (!chosenTemplate) {
const smartinteract = new plugins.smartinteract.SmartInteract();
const answerBucket = await smartinteract.askQuestion({
type: 'list',
default: 'npm',
message: 'What template do you want to scaffold? (Only showing mpost common options)',
name: 'templateName',
choices: ['npm', 'service', 'wcc', 'website'],
});
chosenTemplate = answerBucket.value;
}
if (await isTemplate(chosenTemplate)) {
logger.log('info', `found requested template ${chosenTemplate}`);
}
else {
logger.log('error', `Template ${chosenTemplate} not available`);
return;
}
const localScafTemplate = await getTemplate(chosenTemplate);
await localScafTemplate.askCliForMissingVariables();
await localScafTemplate.writeToDisk(paths.cwd);
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfdGVtcGxhdGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUVyQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsZUFBdUIsRUFBRSxFQUFFO0lBQ3pELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQztBQUNoRSxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxLQUFLLEVBQUUsZUFBdUIsRUFBRSxFQUFFO0lBQzFELE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0FBQzVFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsZUFBdUIsRUFBRSxFQUFFO0lBQzNELElBQUksVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDaEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUMxRCxlQUFlLENBQUMsZUFBZSxDQUFDLENBQ2pDLENBQUM7UUFDRixNQUFNLGlCQUFpQixDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDOUMsT0FBTyxpQkFBaUIsQ0FBQztJQUMzQixDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsT0FBWSxFQUFFLEVBQUU7SUFDeEMsSUFBSSxjQUFjLEdBQVcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUxQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sWUFBWSxHQUFHLE1BQU0sYUFBYSxDQUFDLFdBQVcsQ0FBQztZQUNuRCxJQUFJLEVBQUUsTUFBTTtZQUNaLE9BQU8sRUFBRSxLQUFLO1lBQ2QsT0FBTyxFQUNMLDRFQUE0RTtZQUM5RSxJQUFJLEVBQUUsY0FBYztZQUNwQixPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUM7U0FDOUMsQ0FBQyxDQUFDO1FBQ0gsY0FBYyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksTUFBTSxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUNyQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSw0QkFBNEIsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFlBQVksY0FBYyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hFLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM1RCxNQUFNLGlCQUFpQixDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDcEQsTUFBTSxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQyJ9