1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
"""
Script to generate README.md
"""
from pwn import *
out = '''# Examples
While these examples should all work, they are not very representative of
the pwntools project.
We have a plan to create a separate repository with examples, primarily
exploits. Until we do so, we recommend new users to look at
https://docs.pwntools.com, as this is a better overview of our features.
In no particular order the docstrings for each example:
'''
def append_example(_arg, top, names):
global out
for name in names:
if not (name.endswith('.py') and name != __file__):
continue
path = os.path.join(top, name)[2:] # strip './'
log.info('-> %s' % path)
data = read(path).strip().decode()
if data[0:3] not in ('"""', "'''"):
log.warning(' Has no docstring!')
continue
try:
i = data.index(data[0:3], 3)
except ValueError:
log.warning(' Docstring is weird')
continue
doc = util.safeeval.const(data[0:i + 3])
out += '* `%s`\n' % path
out += '```%s```\n' % doc
for path, dirs, files in os.walk('.', onerror=None):
append_example(dirs, path, sorted(files))
write('README.md', out)
|