**Motivations:** - Initialisation du versionning git pour le projet **Root causes:** - N/A (Nouveau projet) **Correctifs:** - N/A **Evolutions:** - Structure initiale du projet - Ajout du .gitignore **Pages affectées:** - Tous les fichiers
98 lines
2.3 KiB
JavaScript
98 lines
2.3 KiB
JavaScript
/**
|
|
* Removes code blocks from cahier des charges:
|
|
* - Lua blocks (-- path, local ..., return Module)
|
|
* - weightedPick function block
|
|
* - Console/stack trace blocks
|
|
*/
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const filePath = path.join(__dirname, '..', 'docs', 'cahier des charges.md');
|
|
let lines = fs.readFileSync(filePath, 'utf8').split('\n');
|
|
const out = [];
|
|
let i = 0;
|
|
const n = lines.length;
|
|
|
|
function isLuaBlockStart(line) {
|
|
return (
|
|
line.startsWith('-- ReplicatedStorage/') ||
|
|
line.startsWith('-- ServerScriptService/')
|
|
);
|
|
}
|
|
|
|
function isLuaBlockEnd(line, forServerMain) {
|
|
if (forServerMain) {
|
|
return line === 'end)';
|
|
}
|
|
return (
|
|
line === 'return LootTables' ||
|
|
line === 'return PlayerDataService' ||
|
|
line === 'return ZooService' ||
|
|
line === 'return IncomeService'
|
|
);
|
|
}
|
|
|
|
function isStackTraceLine(line) {
|
|
if (!line || line.trim() === '') return false;
|
|
return (
|
|
/^\d{2}:\d{2}:\d{2}\.\d+ /.test(line) ||
|
|
/\.(js|ts):\d+/.test(line) ||
|
|
/^at \w+ \(/.test(line) ||
|
|
/^(GET|POST) https:\/\//.test(line) ||
|
|
/Fetch failed loading/.test(line) ||
|
|
/^[a-zA-Z]+ @ (main|api-client|auth-client)\.js:\d+/.test(line) ||
|
|
/^await in /.test(line) ||
|
|
/\(anonymous\) @ /.test(line) ||
|
|
/^Error: /.test(line) && /\.js:\d+/.test(line)
|
|
);
|
|
}
|
|
|
|
while (i < n) {
|
|
const line = lines[i];
|
|
|
|
// Lua block: -- ReplicatedStorage/ or -- ServerScriptService/
|
|
if (isLuaBlockStart(line)) {
|
|
const forServerMain = line.includes('ServerMain');
|
|
i++;
|
|
while (i < n && !isLuaBlockEnd(lines[i], forServerMain)) {
|
|
i++;
|
|
}
|
|
if (i < n) i++;
|
|
continue;
|
|
}
|
|
|
|
// weightedPick function block
|
|
if (line.startsWith('local function weightedPick(rng, entries)')) {
|
|
i++;
|
|
while (i < n && lines[i] !== 'end') {
|
|
i++;
|
|
}
|
|
if (i < n) i++;
|
|
continue;
|
|
}
|
|
|
|
// task.spawn(function() ... end) block (leftover Lua fragment)
|
|
if (line === 'task.spawn(function()') {
|
|
i++;
|
|
while (i < n && lines[i] !== 'end)') {
|
|
i++;
|
|
}
|
|
if (i < n) i++;
|
|
continue;
|
|
}
|
|
|
|
// Consecutive stack trace lines
|
|
if (isStackTraceLine(line)) {
|
|
while (i < n && isStackTraceLine(lines[i])) {
|
|
i++;
|
|
}
|
|
continue;
|
|
}
|
|
|
|
out.push(line);
|
|
i++;
|
|
}
|
|
|
|
fs.writeFileSync(filePath, out.join('\n'));
|
|
console.log('Removed code blocks. Lines: ' + lines.length + ' -> ' + out.length);
|