@ip-algorithmics/codeforces-io
Version:
Codeforces IO functions
51 lines (49 loc) • 7.17 kB
JavaScript
var _a, _b, _c, _d, _e;
import fs from 'fs';
const argv = require('yargs/yargs')(process.argv.slice(2))
.usage('Usage: $0 <path> [options]')
.command('path', 'Creates a solution folder using the path')
.example('$0 ./TotallyAProblemToSolve', 'Creates the folder TotallyAProblemToSolve in the current folder')
.alias('js', 'useJs')
.nargs('js', 0)
.describe('js', 'Use Javascript instead of Typescript')
.alias('cjs', 'useCjs')
.nargs('cjs', 0)
.describe('cjs', 'Use require from CommonJs instead ES6 imports')
.alias('f', 'file')
.nargs('f', 1)
.describe('f', 'File name, defaults to index')
.alias('c', 'comment')
.nargs('c', 1)
.describe('c', 'File name, defaults to index')
.help('h')
.alias('h', 'help').argv;
// .epilog('copyright 2021')
const options = {
path: (_a = argv._[0]) !== null && _a !== void 0 ? _a : './New Solution',
js: (_b = argv.js) !== null && _b !== void 0 ? _b : false,
cjs: (_c = argv.cjs) !== null && _c !== void 0 ? _c : false,
file: (_d = argv.file) !== null && _d !== void 0 ? _d : 'index',
comment: (_e = argv.comment) !== null && _e !== void 0 ? _e : ''
};
function createFolderRecursively(path) {
fs.mkdirSync(path, { recursive: true });
}
function createFile(path, file, content) {
fs.writeFileSync(`${path}/${file}`, content);
}
const importLibrary = options.cjs
? "const { readline, print, testOutput, console } = require('@ip-algorithmics/codeforces-io');"
: "import { readline, print, testOutput, console } from '@ip-algorithmics/codeforces-io';";
const file = options.js ? `${options.file}.js` : `${options.file}.ts`;
const content = `// ${options.comment}
${importLibrary}
testOutput();
${options.js ? '' : 'export {};'}
`;
createFolderRecursively(options.path);
createFile(options.path, 'input.txt', '');
createFile(options.path, 'output.txt', '');
createFile(options.path, file, content);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUVwQixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDckQsS0FBSyxDQUFDLDRCQUE0QixDQUFDO0tBQ25DLE9BQU8sQ0FBQyxNQUFNLEVBQUUsMENBQTBDLENBQUM7S0FDM0QsT0FBTyxDQUNKLDZCQUE2QixFQUM3QixpRUFBaUUsQ0FDcEU7S0FDQSxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQztLQUNwQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUNkLFFBQVEsQ0FBQyxJQUFJLEVBQUUsc0NBQXNDLENBQUM7S0FDdEQsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUM7S0FDdEIsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDZixRQUFRLENBQUMsS0FBSyxFQUFFLCtDQUErQyxDQUFDO0tBQ2hFLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDO0tBQ2xCLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0tBQ2IsUUFBUSxDQUFDLEdBQUcsRUFBRSw4QkFBOEIsQ0FBQztLQUM3QyxLQUFLLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQztLQUNyQixLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztLQUNiLFFBQVEsQ0FBQyxHQUFHLEVBQUUsOEJBQThCLENBQUM7S0FDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQztLQUNULEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzdCLDRCQUE0QjtBQUU1QixNQUFNLE9BQU8sR0FBRztJQUNaLElBQUksRUFBRSxNQUFBLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1DQUFJLGdCQUFnQjtJQUNuQyxFQUFFLEVBQUUsTUFBQSxJQUFJLENBQUMsRUFBRSxtQ0FBSSxLQUFLO0lBQ3BCLEdBQUcsRUFBRSxNQUFBLElBQUksQ0FBQyxHQUFHLG1DQUFJLEtBQUs7SUFDdEIsSUFBSSxFQUFFLE1BQUEsSUFBSSxDQUFDLElBQUksbUNBQUksT0FBTztJQUMxQixPQUFPLEVBQUUsTUFBQSxJQUFJLENBQUMsT0FBTyxtQ0FBSSxFQUFFO0NBQzlCLENBQUM7QUFFRixTQUFTLHVCQUF1QixDQUFDLElBQVk7SUFDekMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBWSxFQUFFLElBQVksRUFBRSxPQUFlO0lBQzNELEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxHQUFHO0lBQzdCLENBQUMsQ0FBQyw2RkFBNkY7SUFDL0YsQ0FBQyxDQUFDLHdGQUF3RixDQUFDO0FBRS9GLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQztBQUN0RSxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxPQUFPO0VBQ25DLGFBQWE7Ozs7RUFJYixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVk7Q0FDL0IsQ0FBQztBQUVGLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDMUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzNDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5cbmNvbnN0IGFyZ3YgPSByZXF1aXJlKCd5YXJncy95YXJncycpKHByb2Nlc3MuYXJndi5zbGljZSgyKSlcbiAgICAudXNhZ2UoJ1VzYWdlOiAkMCA8cGF0aD4gW29wdGlvbnNdJylcbiAgICAuY29tbWFuZCgncGF0aCcsICdDcmVhdGVzIGEgc29sdXRpb24gZm9sZGVyIHVzaW5nIHRoZSBwYXRoJylcbiAgICAuZXhhbXBsZShcbiAgICAgICAgJyQwIC4vVG90YWxseUFQcm9ibGVtVG9Tb2x2ZScsXG4gICAgICAgICdDcmVhdGVzIHRoZSBmb2xkZXIgVG90YWxseUFQcm9ibGVtVG9Tb2x2ZSBpbiB0aGUgY3VycmVudCBmb2xkZXInXG4gICAgKVxuICAgIC5hbGlhcygnanMnLCAndXNlSnMnKVxuICAgIC5uYXJncygnanMnLCAwKVxuICAgIC5kZXNjcmliZSgnanMnLCAnVXNlIEphdmFzY3JpcHQgaW5zdGVhZCBvZiBUeXBlc2NyaXB0JylcbiAgICAuYWxpYXMoJ2NqcycsICd1c2VDanMnKVxuICAgIC5uYXJncygnY2pzJywgMClcbiAgICAuZGVzY3JpYmUoJ2NqcycsICdVc2UgcmVxdWlyZSBmcm9tIENvbW1vbkpzIGluc3RlYWQgRVM2IGltcG9ydHMnKVxuICAgIC5hbGlhcygnZicsICdmaWxlJylcbiAgICAubmFyZ3MoJ2YnLCAxKVxuICAgIC5kZXNjcmliZSgnZicsICdGaWxlIG5hbWUsIGRlZmF1bHRzIHRvIGluZGV4JylcbiAgICAuYWxpYXMoJ2MnLCAnY29tbWVudCcpXG4gICAgLm5hcmdzKCdjJywgMSlcbiAgICAuZGVzY3JpYmUoJ2MnLCAnRmlsZSBuYW1lLCBkZWZhdWx0cyB0byBpbmRleCcpXG4gICAgLmhlbHAoJ2gnKVxuICAgIC5hbGlhcygnaCcsICdoZWxwJykuYXJndjtcbi8vIC5lcGlsb2coJ2NvcHlyaWdodCAyMDIxJylcblxuY29uc3Qgb3B0aW9ucyA9IHtcbiAgICBwYXRoOiBhcmd2Ll9bMF0gPz8gJy4vTmV3IFNvbHV0aW9uJyxcbiAgICBqczogYXJndi5qcyA/PyBmYWxzZSxcbiAgICBjanM6IGFyZ3YuY2pzID8/IGZhbHNlLFxuICAgIGZpbGU6IGFyZ3YuZmlsZSA/PyAnaW5kZXgnLFxuICAgIGNvbW1lbnQ6IGFyZ3YuY29tbWVudCA/PyAnJ1xufTtcblxuZnVuY3Rpb24gY3JlYXRlRm9sZGVyUmVjdXJzaXZlbHkocGF0aDogc3RyaW5nKSB7XG4gICAgZnMubWtkaXJTeW5jKHBhdGgsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWxlKHBhdGg6IHN0cmluZywgZmlsZTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpIHtcbiAgICBmcy53cml0ZUZpbGVTeW5jKGAke3BhdGh9LyR7ZmlsZX1gLCBjb250ZW50KTtcbn1cblxuY29uc3QgaW1wb3J0TGlicmFyeSA9IG9wdGlvbnMuY2pzXG4gICAgPyBcImNvbnN0IHsgcmVhZGxpbmUsIHByaW50LCB0ZXN0T3V0cHV0LCBjb25zb2xlIH0gPSByZXF1aXJlKCdAaXAtYWxnb3JpdGhtaWNzL2NvZGVmb3JjZXMtaW8nKTtcIlxuICAgIDogXCJpbXBvcnQgeyByZWFkbGluZSwgcHJpbnQsIHRlc3RPdXRwdXQsIGNvbnNvbGUgfSBmcm9tICdAaXAtYWxnb3JpdGhtaWNzL2NvZGVmb3JjZXMtaW8nO1wiO1xuXG5jb25zdCBmaWxlID0gb3B0aW9ucy5qcyA/IGAke29wdGlvbnMuZmlsZX0uanNgIDogYCR7b3B0aW9ucy5maWxlfS50c2A7XG5jb25zdCBjb250ZW50ID0gYC8vICR7b3B0aW9ucy5jb21tZW50fVxuJHtpbXBvcnRMaWJyYXJ5fVxuXG5cbnRlc3RPdXRwdXQoKTtcbiR7b3B0aW9ucy5qcyA/ICcnIDogJ2V4cG9ydCB7fTsnfVxuYDtcblxuY3JlYXRlRm9sZGVyUmVjdXJzaXZlbHkob3B0aW9ucy5wYXRoKTtcbmNyZWF0ZUZpbGUob3B0aW9ucy5wYXRoLCAnaW5wdXQudHh0JywgJycpO1xuY3JlYXRlRmlsZShvcHRpb25zLnBhdGgsICdvdXRwdXQudHh0JywgJycpO1xuY3JlYXRlRmlsZShvcHRpb25zLnBhdGgsIGZpbGUsIGNvbnRlbnQpO1xuIl19