mirror of https://github.com/eyhc1/rendercv.git
renderer: add `theme_directory_path` argument to `copy_theme_files_to_output_directory` function
This commit is contained in:
parent
91452bd20d
commit
d1aa96e25a
|
@ -811,7 +811,9 @@ def generate_markdown_file(
|
||||||
|
|
||||||
|
|
||||||
def copy_theme_files_to_output_directory(
|
def copy_theme_files_to_output_directory(
|
||||||
theme_name: str, output_directory: pathlib.Path
|
theme_name: str,
|
||||||
|
output_directory_path: pathlib.Path,
|
||||||
|
theme_directory_path: Optional[pathlib.Path] = None,
|
||||||
):
|
):
|
||||||
"""Copy the auxiliary files (all the files that don't end with `.j2.tex` and `.py`)
|
"""Copy the auxiliary files (all the files that don't end with `.j2.tex` and `.py`)
|
||||||
of the theme to the output directory. For example, the "classic" theme has custom
|
of the theme to the output directory. For example, the "classic" theme has custom
|
||||||
|
@ -822,22 +824,34 @@ def copy_theme_files_to_output_directory(
|
||||||
theme_name (str): The name of the theme.
|
theme_name (str): The name of the theme.
|
||||||
output_directory (pathlib.Path): Path to the output directory.
|
output_directory (pathlib.Path): Path to the output directory.
|
||||||
"""
|
"""
|
||||||
try:
|
if theme_directory_path is None:
|
||||||
theme_directory = importlib.resources.files(f"rendercv.themes.{theme_name}")
|
if theme_name in dm.available_themes:
|
||||||
except ModuleNotFoundError:
|
theme_directory_path = importlib.resources.files(
|
||||||
# Then it means the theme is a custom theme:
|
f"rendercv.themes.{theme_name}"
|
||||||
theme_directory = pathlib.Path(os.getcwd()) / theme_name
|
)
|
||||||
|
else:
|
||||||
|
# Then it means the theme is a custom theme. If theme_directory is not given
|
||||||
|
# as an argument, then look for the theme in the current working directory.
|
||||||
|
theme_directory_path = pathlib.Path(os.getcwd()) / theme_name
|
||||||
|
|
||||||
for theme_file in theme_directory.iterdir():
|
if not theme_directory_path.is_dir():
|
||||||
|
raise FileNotFoundError(
|
||||||
|
f"The theme {theme_name} doesn't exist in the current working"
|
||||||
|
" directory!"
|
||||||
|
)
|
||||||
|
|
||||||
|
for theme_file in theme_directory_path.iterdir():
|
||||||
if not ("j2.tex" in theme_file.name or "py" in theme_file.name):
|
if not ("j2.tex" in theme_file.name or "py" in theme_file.name):
|
||||||
if theme_file.is_dir():
|
if theme_file.is_dir():
|
||||||
shutil.copytree(
|
shutil.copytree(
|
||||||
str(theme_file),
|
str(theme_file),
|
||||||
output_directory / theme_file.name,
|
output_directory_path / theme_file.name,
|
||||||
dirs_exist_ok=True,
|
dirs_exist_ok=True,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
shutil.copyfile(str(theme_file), output_directory / theme_file.name)
|
shutil.copyfile(
|
||||||
|
str(theme_file), output_directory_path / theme_file.name
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def generate_latex_file_and_copy_theme_files(
|
def generate_latex_file_and_copy_theme_files(
|
||||||
|
|
Loading…
Reference in New Issue