@stryker-mutator/core
Version:
The extendable JavaScript mutation testing framework
30 lines (23 loc) • 1.17 kB
text/typescript
import os from 'os';
import { existsSync, promises as fs } from 'fs';
import { tokens } from '@stryker-mutator/api/plugin';
import { defaultOptions } from '../config/index.js';
import { initializerTokens } from './index.js';
const GITIGNORE_FILE = '.gitignore';
export class GitignoreWriter {
public static inject = tokens(initializerTokens.out);
constructor(private readonly out: typeof console.log) {}
public async addStrykerTempFolder(): Promise<void> {
const defaultTempDirName = defaultOptions.tempDirName;
if (existsSync(GITIGNORE_FILE)) {
const gitignoreContent = await fs.readFile(GITIGNORE_FILE);
if (!gitignoreContent.toString().includes(defaultTempDirName)) {
const strykerTempFolderSpecification = `${os.EOL}# stryker temp files${os.EOL}${defaultTempDirName}${os.EOL}`;
await fs.appendFile(GITIGNORE_FILE, strykerTempFolderSpecification);
this.out('Note: Your .gitignore file has been updated to include recommended git ignore patterns for Stryker');
}
} else {
this.out('No .gitignore file could be found. Please add the following to your .gitignore file: *.stryker-tmp');
}
}
}