1
0
Fork 0
mirror of https://github.com/mmumshad/ansible-playable.git synced 2025-02-15 04:42:05 +00:00
ansible-playable/server/components/pythonParser.js
Mumshad Mannambeth c92f737237 Initial Commit
2017-06-07 13:36:45 -04:00

75 lines
2.3 KiB
JavaScript

/**
* Created by mannam4 on 11/3/2016.
*/
var fs = require('fs');
var dir = require('node-dir');
const path = require('path');
var options = {
match:/vroConfig.py$/,
matchDir: ['vro']
};
var results = []
dir.readFiles('C:\\Mumshad Files\\Projects\\EHC Builder\\python scripts\\Code\\source', options , function(err, content, filename, next) {
console.log('processing content of file', filename);
//const regex = /def (.*)\(.*\s+"""[^]+?Description: (.*)[^]+?Parameters:([^]+?)(Returns:|Return:)([^]+?)(Raises:|Raise:|)([^]+?)"""/g;
var regex = /def (.*)\(.*\s+"""([^]+?)"""/g;
var m;
while ((m = regex.exec(content)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
// m.forEach((match, groupIndex) => {
// console.log(`Found match, group ${groupIndex}: ${match}`);
//
// });
var methodName = m[1];
var docStringComments = '"""' + m[2] + '"""';
var regex2 = /"""[^]+(Description[^]+?)(Parameters[^]+?)?(Return[^]+?)?(Raise[^]+?)?"""/gm;
var description = docStringComments.replace(regex2, '$1');
var Parameters = docStringComments.replace(regex2, '$2');
var Return = docStringComments.replace(regex2, '$3');
var Raise = docStringComments.replace(regex2, '$4');
var moduleName = path.parse(filename).name
var packageName = path.parse(path.parse(filename).dir).name
// console.log('Package: %s', packageName);
// console.log('Module: %s', moduleName);
// console.log('Method: %s', methodName);
// console.log('Description: %s', description);
var method = {
moduleName: moduleName,
methodName: methodName,
packageName: packageName,
description: description
}
results.push(method)
// console.log('Parameters: %s', Parameters);
// console.log('Return: %s', Return);
// console.log('Raise: %s', Raise);
}
next();
}, function(){
console.log(results);
});