journal/update.py

48 lines
1.5 KiB
Python
Raw Normal View History

2021-09-04 21:13:56 +00:00
import os
import re
def articles_in_readme(readme_path):
2021-09-05 04:11:17 +00:00
article_finder = re.compile(r'- \[\S+\]\((\S+)].md\)')
2021-09-04 21:13:56 +00:00
with open(readme_path, 'r', encoding="UTF-8") as file:
2021-09-05 04:11:17 +00:00
return article_finder.findall(file.read())
2021-09-04 21:13:56 +00:00
file.close()
2021-09-05 04:11:17 +00:00
2021-09-04 21:13:56 +00:00
def is_markdown_file(filename):
2021-09-05 04:11:17 +00:00
matcher = re.compile(r'\S+\.md')
2021-09-04 21:13:56 +00:00
return True if matcher.match(filename) else False
def make_readme_article_name(filename):
word_finder = re.compile(r"_?([A-Z][a-z]+")
2021-09-05 04:11:17 +00:00
return ' '.join(word_finder.findall(filename))
2021-09-04 21:13:56 +00:00
def articles_in_directory(directory):
files = list()
for file in os.listdir(directory):
if is_markdown_file(file) and file := "README.md":
files.append(file)
2021-09-05 04:11:17 +00:00
def readme_matches_directory_contents(directory):
return True if (articles_in_readme(os.path.join(directory, 'README.md')) == os.listdir(directory)) else False
def update_readme_contents(directory):
readme_path = os.path.join(directory,"README.md")
files_difference = list(set(articles_in_directory(directory))-set(articles_in_readme(readme_path)))
if len(files_difference) == 0:
logging.debug("update_readme_contents : {} : there were no differences between directory and file".format(readme_path))
else:
with open(readme_path, 'a') as file:
for item in files_difference:
file.write(f"- [{make_readme_article_name(item)}]({item})")
2021-09-04 21:13:56 +00:00
for directory in os.listdir():
if os.path.isdir(directory):
readme