51 lines
1.2 KiB
Python
51 lines
1.2 KiB
Python
from typing import List
|
|
from pathlib import Path
|
|
|
|
HOU_EDITIONS = ["core", "fx", "indie", "apprentice"]
|
|
"""All possible Houdini editions."""
|
|
|
|
|
|
def get_binary_name_for_edition(edition: str) -> str:
|
|
"""Get the appropriate binary name for the given Houdini edition.
|
|
|
|
Args:
|
|
edition (str): Hooudini edition
|
|
|
|
Returns:
|
|
str: Binary name
|
|
"""
|
|
|
|
if edition in ["core", "fx"]:
|
|
return f"houdini{edition}"
|
|
else:
|
|
return "houdini"
|
|
|
|
|
|
def get_houdini_edition_args(edition: str) -> List[str]:
|
|
"""Get the appropriate arguments to launch a given Houdini edition.
|
|
|
|
Args:
|
|
edition (str): Houdini edition
|
|
|
|
Returns:
|
|
List[str]: Arguments
|
|
"""
|
|
|
|
if edition in ["indie", "apprentice"]:
|
|
return [f"-{edition}"]
|
|
else:
|
|
return []
|
|
|
|
|
|
def noncomercialize_path(input_path: Path) -> Path:
|
|
# Figure out the noncomercial version of the path
|
|
path_suffix = input_path.suffix
|
|
noncomercial_path = input_path.with_suffix(f".{path_suffix}nc")
|
|
|
|
# If the NC version exists, use it
|
|
if noncomercial_path.exists():
|
|
return noncomercial_path
|
|
|
|
# All other cases, use the input directly
|
|
return input_path
|