eris/make-readme.py

69 lines
1.5 KiB
Python
Raw Normal View History

#!/usr/bin/env python3.7
2016-11-19 16:26:23 +01:00
# -*- coding: utf-8 -*-
2016-11-19 13:50:07 +01:00
2019-02-04 11:48:47 +10:00
# Copyright (C) 2015-2019 Andrew Hamilton. All rights reserved.
2016-11-19 15:52:48 +01:00
# Licensed under the Artistic License 2.0.
2016-11-19 13:50:07 +01:00
2018-09-17 23:59:38 +10:00
import eris.tools as tools
2016-11-19 13:50:07 +01:00
def tool_markup(tool):
url = tools.url_of_tool(tool)
return (tool.__name__ if url is None else f"[{tool.__name__}]({url})")
def main():
all_tools = ([(["*"], tools.generic_tools() +
[tools.git_blame, tools.git_log])] +
tools.TOOLS_FOR_EXTENSIONS)
tool_set = set()
extension_set = set()
for extensions, tools_ in all_tools:
tool_set.update(tools_)
extension_set.update(extensions)
print(f"""\
2018-09-25 10:41:55 +10:00
# Eris Codebase Monitor
2016-11-19 13:50:07 +01:00
2020-01-10 14:04:57 +10:00
## Summary
2016-11-19 13:50:07 +01:00
2018-09-17 23:59:38 +10:00
Eris maintains an up-to-date set of reports for every file in a codebase.
2016-11-19 13:50:07 +01:00
2020-01-10 14:04:57 +10:00
## Installation
2016-11-19 13:50:07 +01:00
2020-01-10 14:04:57 +10:00
### Ubuntu (19.10)
2016-11-19 13:50:07 +01:00
2018-09-17 23:59:38 +10:00
# git clone https://github.com/ahamilton/eris
# cd eris
2016-11-19 13:50:07 +01:00
# ./install-dependencies
# python3.7 -m pip install .
To test its working properly:
# ./test-all
2016-11-19 13:50:07 +01:00
2017-06-27 14:20:30 +01:00
then to run:
2016-11-19 13:50:07 +01:00
2018-09-17 23:59:38 +10:00
# eris <directory_path>
2016-11-19 13:50:07 +01:00
2020-01-10 14:04:57 +10:00
### Docker
# git clone https://github.com/ahamilton/eris
# cd eris
# sudo docker build -t eris .
# mv eris-docker ~/bin
# eris-docker -h
## Tools
2016-11-19 15:58:21 +01:00
Extensions({len(extension_set)-1}) | Tools({len(tool_set)})
----------:| -----""")
for extensions, tools_ in all_tools:
2019-12-04 18:39:22 +10:00
print("%s | %s" % (
" ".join("." + extension for extension in extensions),
"".join(tool_markup(tool) for tool in tools_)))
if __name__ == "__main__":
main()