From 74c158e36aafa0a29bcd468705fd1ecf93a82a38 Mon Sep 17 00:00:00 2001 From: Aren Elchinyan Date: Sun, 5 Nov 2023 16:02:33 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D0=B0=D1=8F=20=D1=81=D0=B8?= =?UTF-8?q?=D1=81=D1=82=D0=B5=D0=BC=D0=B0=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA?= =?UTF-8?q?=D0=B8=20=D1=8F=D0=B4=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 ++-- KERNEL.md | 1 + STD.md | 1 + build.py | 97 +++++++++++++++++++++++++++++------------------------- 4 files changed, 58 insertions(+), 47 deletions(-) diff --git a/.gitignore b/.gitignore index 6a4c088..074cb46 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,12 @@ limine/ +iso_root/* +bin/* +output/* *.elf *.o *.fd *.so -iso_root/* -bin/* *.hdd *.iso +*.ko \ No newline at end of file diff --git a/KERNEL.md b/KERNEL.md index e69de29..b91bcae 100644 --- a/KERNEL.md +++ b/KERNEL.md @@ -0,0 +1 @@ +# Строение ядра diff --git a/STD.md b/STD.md index e69de29..4b51257 100644 --- a/STD.md +++ b/STD.md @@ -0,0 +1 @@ +# Стандартная библиотека модулей \ No newline at end of file diff --git a/build.py b/build.py index 3d5eba3..a2ccf15 100644 --- a/build.py +++ b/build.py @@ -1,58 +1,65 @@ import os -import time +import subprocess import shutil -from git import Repo -from mistune import Markdown +import time -# Путь до репозитория Git -repo_path = '/project/pages/' +def update_repo(): + # Переходим в директорию с репозиторием + repo_path = '.' + os.chdir(repo_path) -# Путь до папки assets -assets_path = os.path.join(repo_path, 'assets') + # Выполняем команду git pull для обновления репозитория + result = subprocess.run(['git', 'pull'], capture_output=True, text=True) + # Проверяем вывод команды git pull + if result.stdout.strip().lower() == 'already up to date': + print('No updates, waiting for further update...') + return False + print('Repository updated') + return True -# Путь до папки, в которую будут скопированы файлы -target_path = '/var/www/pages/' +def convert_md_to_html(md_file): + # Получаем путь к папке "output" + bin_path = os.path.join(os.getcwd(), 'output') -# Функция для преобразования markdown в html -def markdown_to_html(markdown_content): - markdown = Markdown() - return markdown(markdown_content) + # Получаем заголовок странцы из файла + title = '' + with open(md_file, 'r') as file: + for line in file: + if line.startswith('#'): + title = line.strip('#').strip() + break -# Функция для копирования файлов и папки -def copy_files(source_path, target_path): - if os.path.isdir(source_path): - shutil.copytree(source_path, target_path) - else: - shutil.copy2(source_path, target_path) + # Генерируем имя файла HTML на основе имени файла MD + file_name = os.path.splitext(md_file)[0] + '.html' + html_file = os.path.join(bin_path, file_name) -while True: - try: - # Открываем репозиторий - repo = Repo(repo_path) + # Преобразуем файл MD в HTML, используя, например, Pandoc + os.system(f"pandoc -s {md_file} -o {html_file} --metadata title=\"{title}\"") - # Проверяем наличие изменений - if repo.is_dirty(): - # Вытягиваем изменения из репозитория - origin = repo.remote(name='origin') - origin.pull() - # Получаем список markdown файлов - markdown_files = [file for file in os.listdir(repo_path) if file.endswith('.md')] +def main(): + # Получаем путь к папке "output" + bin_path = os.path.join(os.getcwd(), 'output') - # Копируем файлы и папку assets в целевую папку - for file in markdown_files: - source_file_path = os.path.join(repo_path, file) - target_file_path = os.path.join(target_path, file.replace('.md', '.html')) - with open(source_file_path) as f: - markdown_content = f.read() - html_content = markdown_to_html(markdown_content) - with open(target_file_path, 'w') as f: - f.write(html_content) - copy_files(assets_path, target_path) - # Засыпаем на 10 минут - time.sleep(600) + # Создаем папку "output", если она не существует + os.makedirs(bin_path, exist_ok=True) + while True: + # Проверяем обновление репозитория Git + update_repo() - except Exception as e: - print(f'Error: {e}') - time.sleep(600) \ No newline at end of file + # Получаем список всех файлов в репозитории + repo_files = os.listdir('.') + + # Фильтруем только MD файлы + md_files = [file for file in repo_files if file.endswith('.md')] + + # Преобразуем каждый MD файл в HTML и копируем в папку "output" + for md_file in md_files: + convert_md_to_html(md_file) + + # Ожидаем 1 минуту перед следующей проверкой обновлений + time.sleep(60) + +if __name__ == '__main__': + main() \ No newline at end of file