from pathlib import Path

import shutil
import tempfile
import os


DIR_TO_ARCHIVE = Path(__file__).resolve().parent / "oes_ext_edited"
OUTPUT_ARCHIVE_PATH = Path(__file__).resolve().parent / "oes_ext_edited.zip"

ignore_list = shutil.ignore_patterns('.git')


def archive_directory(directory_path: Path, output_archive_path: Path) -> None:
    with tempfile.TemporaryDirectory() as temp_dir:
        dest_path = os.path.join(temp_dir, 'to_archive')
        shutil.copytree(directory_path, dest_path, ignore=ignore_list)

        shutil.make_archive(
            base_name = output_archive_path.with_suffix("").as_posix(),
            format = "zip",
            root_dir = dest_path
        )


if __name__ == "__main__":
    archive_directory(DIR_TO_ARCHIVE, OUTPUT_ARCHIVE_PATH)
