aboutsummaryrefslogtreecommitdiffstats
path: root/readme_generate.py
diff options
context:
space:
mode:
Diffstat (limited to 'readme_generate.py')
-rwxr-xr-xreadme_generate.py166
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()