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.

48 lines 4.36 kB
import * as plugins from './mod.plugins.js'; import * as paths from '../paths.js'; import { Project } from '../classes.project.js'; import { logger } from '../gitzone.logging.js'; const gitignorePath = plugins.path.join(paths.cwd, './.gitignore'); export const run = async (projectArg) => { const gitignoreExists = await plugins.smartfs.file(gitignorePath).exists(); let customContent = ''; if (gitignoreExists) { // lets get the existing gitignore file const existingGitIgnoreString = (await plugins.smartfs .file(gitignorePath) .encoding('utf8') .read()); // Check for different custom section markers const customMarkers = ['#------# custom', '# custom']; for (const marker of customMarkers) { const splitResult = existingGitIgnoreString.split(marker); if (splitResult.length > 1) { // Get everything after the marker (excluding the marker itself) customContent = splitResult[1].trim(); break; } } } // Write the template const templateModule = await import('../mod_template/index.js'); const ciTemplate = await templateModule.getTemplate('gitignore'); await ciTemplate.writeToDisk(paths.cwd); // Append the custom content if it exists if (customContent) { const newGitignoreContent = (await plugins.smartfs .file(gitignorePath) .encoding('utf8') .read()); // The template already ends with "#------# custom", so just append the content const finalContent = newGitignoreContent.trimEnd() + '\n' + customContent + '\n'; await plugins.smartfs .file(gitignorePath) .encoding('utf8') .write(finalContent); logger.log('info', 'Updated .gitignore while preserving custom section!'); } else { logger.log('info', 'Added a .gitignore!'); } }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmdpdGlnbm9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL21vZF9mb3JtYXQvZm9ybWF0LmdpdGlnbm9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0MsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQztBQUVuRSxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLFVBQW1CLEVBQUUsRUFBRTtJQUMvQyxNQUFNLGVBQWUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNFLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUV2QixJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLHVDQUF1QztRQUN2QyxNQUFNLHVCQUF1QixHQUFHLENBQUMsTUFBTSxPQUFPLENBQUMsT0FBTzthQUNuRCxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQ25CLFFBQVEsQ0FBQyxNQUFNLENBQUM7YUFDaEIsSUFBSSxFQUFFLENBQVcsQ0FBQztRQUVyQiw2Q0FBNkM7UUFDN0MsTUFBTSxhQUFhLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN0RCxLQUFLLE1BQU0sTUFBTSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ25DLE1BQU0sV0FBVyxHQUFHLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLGdFQUFnRTtnQkFDaEUsYUFBYSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEMsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQjtJQUNyQixNQUFNLGNBQWMsR0FBRyxNQUFNLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sVUFBVSxHQUFHLE1BQU0sY0FBYyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqRSxNQUFNLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXhDLHlDQUF5QztJQUN6QyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxPQUFPO2FBQy9DLElBQUksQ0FBQyxhQUFhLENBQUM7YUFDbkIsUUFBUSxDQUFDLE1BQU0sQ0FBQzthQUNoQixJQUFJLEVBQUUsQ0FBVyxDQUFDO1FBQ3JCLCtFQUErRTtRQUMvRSxNQUFNLFlBQVksR0FDaEIsbUJBQW1CLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxHQUFHLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDOUQsTUFBTSxPQUFPLENBQUMsT0FBTzthQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDO2FBQ25CLFFBQVEsQ0FBQyxNQUFNLENBQUM7YUFDaEIsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLHFEQUFxRCxDQUFDLENBQUM7SUFDNUUsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7QUFDSCxDQUFDLENBQUMifQ==