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