diff options
Diffstat (limited to 'readme_generate.py')
-rwxr-xr-x | readme_generate.py | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/readme_generate.py b/readme_generate.py new file mode 100755 index 0000000..781e2d3 --- /dev/null +++ b/readme_generate.py @@ -0,0 +1,86 @@ +#! /usr/bin/python + +import sys; +import os; + +class Reader(): + def __init__(self, suffix): + self.suffix = suffix; + # + def checkOk(self, pathname): + for suffix in self.suffix: + if pathname.endswith(suffix): + return True; + return False; + def read(self, pathname): + f = open(pathname, 'r'); + input_string = f.read(); + f.close(); + return self.getOutputString(input_string); + def getOutputString(self, input_string): + return '' +# +class AsciidocReader(Reader): + def __init__(self): + Reader.__init__(self, ['.asciidoc', + '.adoc', + '.ascii', + ]); + def getOutputString(self, input_string): + return input_string; +# +class InReader(Reader): + def __init__(self, suffix, start_string, end_string): + Reader.__init__(self, suffix); + self.start_string = start_string; + self. end_string = end_string; + def getOutputString(self, input_string): + start_index = 0; + ret = '' + while True: + start = input_string.find(self.start_string, start_index); + if start == -1: + break; + end = input_string.find(self.end_string, + start + len(self.start_string)); + if end == -1: + break; + start_index = end + len(self.end_string); + ret += input_string[start + len(self.start_string) : end]; + index = 0; + while index < len(ret): + if index == 0 or ret[index - 1] == "\n": + if ret[index] == ' ' or ret == "\t": + ret = ret[:index] + ret[index + 1:]; + else: + index += 1; + else: + index += 1; + return ret; +# +class CppReader(InReader): + def __init__(self): + InReader.__init__(self, + ['.c', '.cpp', '.h', '.hpp'], + '@asciidoc', + '@asciidoc-'); +# +readers = [AsciidocReader(), + CppReader(), + ]; + +if len(sys.argv) <= 1: readme = 'README.asciidoc'; +else : readme = sys.argv[1]; + +readme_f = open(readme, 'w'); + +for (root, sub_folders, files) in os.walk('./'): + for reader in readers: + for filename in files: + path = os.path.join(root, filename); + if path == './' + readme: + continue; + if reader.checkOk(filename): + readme_f.write(reader.read(path)); + files.remove(filename); +readme_f.close(); |