Skip to content

Commit

Permalink
Reverse WIP commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Boy Baukema committed Dec 13, 2016
1 parent 4d6c89b commit 471fcb0
Showing 1 changed file with 106 additions and 20 deletions.
126 changes: 106 additions & 20 deletions bin/convert-to-readthedocs/src/convert.js
Expand Up @@ -12,10 +12,7 @@ let asvs = require('owasp-asvs'),
pdc = require('pdc'),
aasvs = require('./../../../src/aasvs.json'),
includes = require('array-includes'),
lang = 'en',
chapterNumber = 4,
h2Number = 0,
requirementChapter = 0;
lang = 'en';

/* when Array#includes is not present */
delete Array.prototype.includes;
Expand All @@ -32,26 +29,115 @@ asvs.requirements.forEach(function(requirement) {
return;
}

if (!requirement.levels.includes(2)) {
return;
}
let title = requirement.chapterNr + '.' + requirement.nr + ' ' + annotatedRequirement.shortTitle[lang];

if (requirementChapter != requirement.chapterNr) {
chapterNumber++;
h2Number = 0;
requirementChapter = requirement.chapterNr;

console.log('# ' + chapterNumber + '. ' + asvs.chapters['' + requirementChapter]['name'][lang] + "\n");
}
let requirementDoc = `${title}
${"=".repeat(title.length)}
h2Number++;
${requirement.title[lang]}
let title = chapterNumber + '.' + h2Number + '. V' + requirement.chapterNr + '.' + requirement.nr + ': ' + annotatedRequirement.shortTitle[lang];
Levels: ${requirement.levels.join(", ")}
let requirementDoc = `${title}
${"-".repeat(title.length)}
### ${requirement.title[lang]}
`;

console.log(requirementDoc);
let helpFilesDir = `${__dirname}/../../../src/help/${requirement.chapterNr}/${requirement.nr}/${lang}/`;
fs.readdir(helpFilesDir, function (err, files) {
if (err) {
files = [];
}
Promise.all(files.map(function(file) {
return new Promise(function(resolve, reject) {
fs.readFile(helpFilesDir + file, function(err, result) {
if (err) {
reject(err);
}

let helpTextInMdFormat = `${aasvs.helpTypes[file][lang]}
${"-".repeat(file.length)}
${result}`;

resolve(helpTextInMdFormat);
});
});
})).then(function(helpTextsInMdFormat) {
return Promise.all(helpTextsInMdFormat.map(function(helpTextInMdFormat) {
return new Promise(function(resolve, reject) {
pdc(helpTextInMdFormat, 'markdown', 'rst', function(err, result) {
if (err) {
reject(err);
}
resolve(result);
});
})
}));
}).then(function(helpTextsInRstFormat) {
requirementDoc += helpTextsInRstFormat.join("\n\n");

let requirementFilePath = DOC_DIR + 'requirement-' + requirement.chapterNr + '.' + requirement.nr + '.rst';
fs.writeFile(requirementFilePath, requirementDoc, function (err) {
if (err) {
return console.log(err);
}

console.log("Wrote" + requirementFilePath);
});
});
});
});


// build chapter indexes
for (let chapterNr in asvs.chapters) {
let chapterName = asvs.chapters[chapterNr].name[lang];

let fileNames = asvs.requirements.reduce(function(fileNames, requirement) {
if (requirement.chapterNr !== chapterNr) {
return fileNames;
}
fileNames[fileNames.length] = 'requirement-' + chapterNr + '.' + requirement.nr;
return fileNames;
}, []);

let chapterDoc = `v${chapterNr} ${chapterName}
=${"=".repeat(chapterNr.length)}=${"=".repeat(chapterName.length)}
.. toctree::
:maxdepth: 1
:titlesonly:
${fileNames.join("\n ")}
`;

let chapterFilePath = DOC_DIR + 'v' + chapterNr + '.rst';
fs.writeFile(chapterFilePath, chapterDoc);
console.log('Wrote ' + chapterFilePath);
}


// build level indexes
for (let levelNr in asvs.levelNames) {
let levelName = asvs.levelNames[levelNr][lang];

let fileNames = asvs.requirements.reduce(function(fileNames, requirement) {
if (!requirement.levels.includes(+levelNr)) {
return fileNames;
}
fileNames[fileNames.length] = 'requirement-' + requirement.chapterNr + '.' + requirement.nr;
return fileNames;
}, []);

let levelDoc = `Level ${levelNr}: ${levelName}
======${"=".repeat(levelNr.length)}==${"=".repeat(levelName.length)}
.. toctree::
:maxdepth: 1
:titlesonly:
${fileNames.join("\n ")}
`;

let levelFilePath = DOC_DIR + 'level' + levelNr + '.rst';
fs.writeFile(levelFilePath, levelDoc);
console.log('Wrote ' + levelFilePath);
}

0 comments on commit 471fcb0

Please sign in to comment.