diff --git a/packages/core/installMachine/index.ts b/packages/core/installMachine/index.ts index 49c30e3..e3db3e0 100644 --- a/packages/core/installMachine/index.ts +++ b/packages/core/installMachine/index.ts @@ -2,8 +2,8 @@ import { ActorLogic, AnyEventObject, PromiseSnapshot, and, createActor, createMa import { InstallMachineContext, StepsCompleted } from '../types'; import { saveStateToRcFile } from '../utils/rcFileManager'; -import { prepareDrink } from './installSteps/bar/prepareDrink'; -import { createDocFiles } from './installSteps/docs/create'; +import { prepareDrink } from './installSteps/stapler/prepareDrink'; +import { createDocFiles } from './installSteps/stapler/createDocFiles'; import { initializeRepository } from './installSteps/github/install'; import { pushToGitHub } from './installSteps/github/repositoryManager'; import { modifyHomepage } from './installSteps/homepage/install'; diff --git a/packages/core/installMachine/installSteps/docs/create.ts b/packages/core/installMachine/installSteps/stapler/createDocFiles.ts similarity index 100% rename from packages/core/installMachine/installSteps/docs/create.ts rename to packages/core/installMachine/installSteps/stapler/createDocFiles.ts diff --git a/packages/core/installMachine/installSteps/stapler/modifyGitignore.ts b/packages/core/installMachine/installSteps/stapler/modifyGitignore.ts new file mode 100644 index 0000000..ba6dcae --- /dev/null +++ b/packages/core/installMachine/installSteps/stapler/modifyGitignore.ts @@ -0,0 +1,34 @@ +import fs from 'fs'; +import path from 'path'; +import { logger } from '../../../utils/logger'; +import { promisify } from 'util'; + +const readFileAsync = promisify(fs.readFile); +const writeFileAsync = promisify(fs.writeFile); + +export const modifyGitignore = async (entry: string) => { + await logger.withSpinner('stapler', `Adding ${entry} to .gitignore..`, async (spinner) => { + const gitignorePath = path.join(process.cwd(), '.gitignore'); + + try { + // Read the .gitignore file + const data = await readFileAsync(gitignorePath, 'utf8'); + + // Check if the entry is already listed + if (!data.includes(entry)) { + // Append the entry at the end of the file + const updatedData = `${data.trim()}\n${entry}\n`; + + // Write the updated .gitignore back to the file + await writeFileAsync(gitignorePath, updatedData); + + spinner.succeed(`${entry} added to .gitignore.`); + } else { + spinner.info(`${entry} is already listed in .gitignore.`); + } + } catch (err) { + spinner.fail('Failed to update .gitignore'); + console.error('Error:', err); + } + }); +}; diff --git a/packages/core/installMachine/installSteps/bar/prepareDrink.ts b/packages/core/installMachine/installSteps/stapler/prepareDrink.ts similarity index 100% rename from packages/core/installMachine/installSteps/bar/prepareDrink.ts rename to packages/core/installMachine/installSteps/stapler/prepareDrink.ts