diff options
Diffstat (limited to 'readme_generate.py')
-rwxr-xr-x | readme_generate.py | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/readme_generate.py b/readme_generate.py deleted file mode 100755 index 126d62e..0000000 --- a/readme_generate.py +++ /dev/null @@ -1,166 +0,0 @@ -#! /usr/bin/env python - -import sys; -import os; - -class Reader(): - def __init__(self, suffix, stp): - self.suffix = suffix; - self._stop = stp; - # - 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 '' - def stop(self): - return self._stop; -# -class AsciidocReader(Reader): - def __init__(self): - Reader.__init__(self, ['.asciidoc', - '.adoc', - '.ascii', - ], - True); - def getOutputString(self, input_string): - return input_string; -# -class InReader(Reader): - def __init__(self, suffix, start_string, end_string): - Reader.__init__(self, suffix, False) - 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 InLineReader(Reader): - def __init__(self, suffix, prefix): - Reader.__init__(self, suffix, False) - self.prefix = prefix - def getOutputString(self, input_string): - ret = '' - line_begin = 0 - while line_begin < len(input_string): - line_end = line_begin - for line_end in range(line_begin, len(input_string) + 1): - if input_string[line_end] == "\n": - break - ok = False - for i in range(line_begin, line_end - len(self.prefix) + 1): - if input_string[i : i + len(self.prefix)] == self.prefix: - ok = True - break - if ok: - start = i + len(self.prefix) - while start < line_end: - if input_string[start]!=' ' and input_string[start]!="\t": - break - start += 1 - ret += input_string[start: line_end].replace('\\', " +\n")+"\n" - line_begin = line_end + 1 - return ret; -# -class CppReader(InReader): - def __init__(self): - InReader.__init__(self, - ['.c', '.cpp', '.h', '.hpp'], - '@asciidoc', - '@asciidoc-') -class CppLineReader(InLineReader): - def __init__(self): - InLineReader.__init__(self, ['.c', '.cpp', '.h', '.hpp'], '//#'); -# -readers = [AsciidocReader(), - CppReader(), - CppLineReader(), - ]; - -if len(sys.argv) <= 1: readme = 'README.asciidoc'; -else : readme = sys.argv[1]; - -readme_f = open(readme, 'w'); -footer_n = 'footer'; - -footer_lst = []; - -for (root, sub_folders, files) in os.walk('./'): - files.sort(); - sub_folders.sort(); - for reader in readers: - deleted = [] - tmp1 = [] - tmp2 = [] - for filename in files: - if filename.find(footer_n) == -1: - tmp1.append(filename) - else: - if not os.path.join(root, filename) in footer_lst: - footer_lst.append(os.path.join(root, filename)) - files = tmp1 - for filename in files: - path = os.path.join(root, filename) - if path == './' + readme: - continue - if reader.checkOk(filename): - s = reader.read(path) - if len(s) > 0: - print 'Get asciidoc from ' + path - dir_name = '' - dirs_ct = 0 - for i in range(0, len(root)): - if root[i] == '/': - dirs_ct += 1 - dir_name = root[i + 1:] + '/' - if dir_name != '/': - readme_f.write('\n'); - readme_f.write('=' * (dirs_ct + 2) + ' ' + dir_name); - readme_f.write('\n'); - readme_f.write(s) - if reader.stop(): - deleted.append(filename) - for filename in deleted: - files.remove(filename) -for reader in readers: - deleted = [] - for path in footer_lst: - if path == './' + readme: - continue - if reader.checkOk(path): - s = reader.read(path) - if len(s) > 0: - print 'Get asciidoc from ' + path - readme_f.write(s) - if reader.stop(): - deleted.append(path) - for filename in deleted: - footer_lst.remove(filename) -readme_f.close() |