diff options
author | Alexander Lourier <aml@rulezz.ru> | 2013-10-18 03:47:15 +0400 |
---|---|---|
committer | Alexander Lourier <aml@rulezz.ru> | 2013-10-18 03:47:15 +0400 |
commit | 0f67c5cbb0f69e5b9dda4e4e75120e63e466e1f8 (patch) | |
tree | ed6659f943e5bbacd6bbf461c3ad952a484835c9 /Tools/px4params/scanner.py | |
parent | 53c85a24eaf64bcac81e86c1e9ba0df10cdbb5da (diff) | |
download | px4-firmware-0f67c5cbb0f69e5b9dda4e4e75120e63e466e1f8.tar.gz px4-firmware-0f67c5cbb0f69e5b9dda4e4e75120e63e466e1f8.tar.bz2 px4-firmware-0f67c5cbb0f69e5b9dda4e4e75120e63e466e1f8.zip |
Parameters list generator
Diffstat (limited to 'Tools/px4params/scanner.py')
-rw-r--r-- | Tools/px4params/scanner.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Tools/px4params/scanner.py b/Tools/px4params/scanner.py new file mode 100644 index 000000000..b5a1af47c --- /dev/null +++ b/Tools/px4params/scanner.py @@ -0,0 +1,34 @@ +import os +import re + +class Scanner(object): + """ + Traverses directory tree, reads all source files, and passes their contents + to the Parser. + """ + + re_file_extension = re.compile(r'\.([^\.]+)$') + + def ScanDir(self, srcdir, parser): + """ + Scans provided path and passes all found contents to the parser using + parser.Parse method. + """ + extensions = set(parser.GetSupportedExtensions()) + for dirname, dirnames, filenames in os.walk(srcdir): + for filename in filenames: + m = self.re_file_extension.search(filename) + if m: + ext = m.group(1) + if ext in extensions: + path = os.path.join(dirname, filename) + self.ScanFile(path, parser) + + def ScanFile(self, path, parser): + """ + Scans provided file and passes its contents to the parser using + parser.Parse method. + """ + with open(path, 'r') as f: + contents = f.read() + parser.Parse(contents) |