mirror of
https://github.com/dw-0/kiauh.git
synced 2025-12-18 13:14:28 +05:00
fix: allow moonraker-telegram-bot-env access to systems site-packages dir (#556)
Signed-off-by: Dominik Willner <th33xitus@gmail.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=Moonraker Telegram Bot SV1 %INST%
|
Description=Moonraker Telegram Bot SV1
|
||||||
Documentation=https://github.com/nlef/moonraker-telegram-bot/wiki
|
Documentation=https://github.com/nlef/moonraker-telegram-bot/wiki
|
||||||
After=network-online.target
|
After=network-online.target
|
||||||
|
|
||||||
|
|||||||
@@ -161,10 +161,11 @@ class TelegramBotExtension(BaseExtension):
|
|||||||
# install dependencies
|
# install dependencies
|
||||||
script = TG_BOT_DIR.joinpath("scripts/install.sh")
|
script = TG_BOT_DIR.joinpath("scripts/install.sh")
|
||||||
package_list = parse_packages_from_file(script)
|
package_list = parse_packages_from_file(script)
|
||||||
|
|
||||||
check_install_dependencies({*package_list})
|
check_install_dependencies({*package_list})
|
||||||
|
|
||||||
# create virtualenv
|
# create virtualenv
|
||||||
if create_python_venv(TG_BOT_ENV):
|
if create_python_venv(TG_BOT_ENV, allow_access_to_system_site_packages=True):
|
||||||
install_python_requirements(TG_BOT_ENV, TG_BOT_REQ_FILE)
|
install_python_requirements(TG_BOT_ENV, TG_BOT_REQ_FILE)
|
||||||
|
|
||||||
def _patch_bot_update_manager(self, instances: List[Moonraker]) -> None:
|
def _patch_bot_update_manager(self, instances: List[Moonraker]) -> None:
|
||||||
|
|||||||
@@ -91,19 +91,27 @@ def parse_packages_from_file(source_file: Path) -> List[str]:
|
|||||||
return packages
|
return packages
|
||||||
|
|
||||||
|
|
||||||
def create_python_venv(target: Path, force: bool = False) -> bool:
|
def create_python_venv(
|
||||||
|
target: Path,
|
||||||
|
force: bool = False,
|
||||||
|
allow_access_to_system_site_packages: bool = False,
|
||||||
|
) -> bool:
|
||||||
"""
|
"""
|
||||||
Create a python 3 virtualenv at the provided target destination.
|
Create a python 3 virtualenv at the provided target destination.
|
||||||
Returns True if the virtualenv was created successfully.
|
Returns True if the virtualenv was created successfully.
|
||||||
Returns False if the virtualenv already exists, recreation was declined or creation failed.
|
Returns False if the virtualenv already exists, recreation was declined or creation failed.
|
||||||
:param force: Force recreation of the virtualenv
|
|
||||||
:param target: Path where to create the virtualenv at
|
:param target: Path where to create the virtualenv at
|
||||||
|
:param force: Force recreation of the virtualenv
|
||||||
|
:param allow_access_to_system_site_packages: give the virtual environment access to the system site-packages dir
|
||||||
:return: bool
|
:return: bool
|
||||||
"""
|
"""
|
||||||
Logger.print_status("Set up Python virtual environment ...")
|
Logger.print_status("Set up Python virtual environment ...")
|
||||||
|
cmd = ["virtualenv", "-p", "/usr/bin/python3", target.as_posix()]
|
||||||
|
cmd.append(
|
||||||
|
"--system-site-packages"
|
||||||
|
) if allow_access_to_system_site_packages else None
|
||||||
if not target.exists():
|
if not target.exists():
|
||||||
try:
|
try:
|
||||||
cmd = ["virtualenv", "-p", "/usr/bin/python3", target.as_posix()]
|
|
||||||
run(cmd, check=True)
|
run(cmd, check=True)
|
||||||
Logger.print_ok("Setup of virtualenv successful!")
|
Logger.print_ok("Setup of virtualenv successful!")
|
||||||
return True
|
return True
|
||||||
|
|||||||
Reference in New Issue
Block a user