aboutsummaryrefslogtreecommitdiffstats
path: root/readme_generate.py
diff options
context:
space:
mode:
Diffstat (limited to 'readme_generate.py')
-rwxr-xr-xreadme_generate.py118
1 files changed, 64 insertions, 54 deletions
diff --git a/readme_generate.py b/readme_generate.py
index 8d105bf..126d62e 100755
--- a/readme_generate.py
+++ b/readme_generate.py
@@ -35,58 +35,58 @@ class AsciidocReader(Reader):
#
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;
+ Reader.__init__(self, suffix, False)
+ self.start_string = start_string
+ self. end_string = end_string
def getOutputString(self, input_string):
- start_index = 0;
+ start_index = 0
ret = ''
while True:
- start = input_string.find(self.start_string, start_index);
+ start = input_string.find(self.start_string, start_index)
if start == -1:
- break;
+ break
end = input_string.find(self.end_string,
- start + len(self.start_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;
+ 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:];
+ ret = ret[:index] + ret[index + 1:]
else:
- index += 1;
+ index += 1
else:
- index += 1;
- return ret;
+ index += 1
+ return ret
#
class InLineReader(Reader):
def __init__(self, suffix, prefix):
- Reader.__init__(self, suffix, False);
- self.prefix = prefix;
+ Reader.__init__(self, suffix, False)
+ self.prefix = prefix
def getOutputString(self, input_string):
- ret = '';
- line_begin = 0;
+ ret = ''
+ line_begin = 0
while line_begin < len(input_string):
- line_end = line_begin;
+ line_end = line_begin
for line_end in range(line_begin, len(input_string) + 1):
if input_string[line_end] == "\n":
- break;
- ok = False;
+ 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;
+ ok = True
+ break
if ok:
- start = i + len(self.prefix);
+ 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;
+ break
+ start += 1
+ ret += input_string[start: line_end].replace('\\', " +\n")+"\n"
+ line_begin = line_end + 1
return ret;
#
class CppReader(InReader):
@@ -94,17 +94,15 @@ class CppReader(InReader):
InReader.__init__(self,
['.c', '.cpp', '.h', '.hpp'],
'@asciidoc',
- '@asciidoc-');
+ '@asciidoc-')
class CppLineReader(InLineReader):
def __init__(self):
- InLineReader.__init__(self,
- ['.c', '.cpp', '.h', '.hpp'],
- '//#');
+ InLineReader.__init__(self, ['.c', '.cpp', '.h', '.hpp'], '//#');
#
readers = [AsciidocReader(),
CppReader(),
CppLineReader(),
- ];
+ ];
if len(sys.argv) <= 1: readme = 'README.asciidoc';
else : readme = sys.argv[1];
@@ -115,42 +113,54 @@ 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 = [];
+ tmp1 = []
+ tmp2 = []
for filename in files:
if filename.find(footer_n) == -1:
- tmp1.append(filename);
+ tmp1.append(filename)
else:
if not os.path.join(root, filename) in footer_lst:
- footer_lst.append(os.path.join(root, filename));
- files = tmp1;
+ footer_lst.append(os.path.join(root, filename))
+ files = tmp1
for filename in files:
- path = os.path.join(root, filename);
+ path = os.path.join(root, filename)
if path == './' + readme:
- continue;
+ continue
if reader.checkOk(filename):
- s = reader.read(path);
+ s = reader.read(path)
if len(s) > 0:
- print 'Get asciidoc from ' + path;
- readme_f.write(s);
+ 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);
+ deleted.append(filename)
for filename in deleted:
- files.remove(filename);
+ files.remove(filename)
for reader in readers:
- deleted = [];
+ deleted = []
for path in footer_lst:
if path == './' + readme:
- continue;
+ continue
if reader.checkOk(path):
- s = reader.read(path);
+ s = reader.read(path)
if len(s) > 0:
- print 'Get asciidoc from ' + path;
- readme_f.write(s);
+ print 'Get asciidoc from ' + path
+ readme_f.write(s)
if reader.stop():
- deleted.append(path);
+ deleted.append(path)
for filename in deleted:
- footer_lst.remove(filename);
-readme_f.close();
+ footer_lst.remove(filename)
+readme_f.close()