import { promises, existsSync, mkdirSync } from 'fs' import { join } from 'path' import { Problem } from './CodeforcesScraper' import AbstractLanguage from './Languages/AbstractLanguage' const { writeFile } = promises export default async function(problem: Problem, language: AbstractLanguage, writeHeaderComments: boolean, generateTemplate: boolean): Promise { try { const cwd = process.cwd() const outputPath = join(cwd, problem.problemSetId.toString()) const outputFile = join(problem.difficulty + '.' + language.extension) const qualifiedOutput = join(outputPath, outputFile) const comment = [ problem.name, 'Problem Set: ' + problem.problemSetId, problem.fullUrl ] .map(line => language.comment + ' ' + line) .join('\n') if(!existsSync(outputPath)) mkdirSync(outputPath, { recursive: true }) let fileContents = '' if(writeHeaderComments) fileContents += comment if(generateTemplate) fileContents += language.template return writeFile(qualifiedOutput, fileContents, 'utf8') } catch (e) { console.error(e) } }