forked from platypush/platypush
[Fix] platyvenv
should also execute the before
and after
blocks.
Before this fix, `platyvenv`, unlike `platydock`, didn't take into account any extra before/after installation commands that individual integrations may instruct to run in their manifest files.
This commit is contained in:
parent
ea88ab7f6c
commit
8b5871af0e
1 changed files with 20 additions and 2 deletions
|
@ -6,7 +6,6 @@ virtual environment for Platypush starting from a configuration file.
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import re
|
|
||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
@ -63,7 +62,23 @@ class VenvBuilder(BaseBuilder):
|
||||||
"""
|
"""
|
||||||
for cmd in deps.to_pkg_install_commands():
|
for cmd in deps.to_pkg_install_commands():
|
||||||
logger.info('Installing system packages: %s', cmd)
|
logger.info('Installing system packages: %s', cmd)
|
||||||
subprocess.call(re.split(r'\s+', cmd.strip()))
|
subprocess.run(cmd, shell=True, check=True)
|
||||||
|
|
||||||
|
def _run_before_commands(self, deps: Dependencies):
|
||||||
|
"""
|
||||||
|
Runs any commands that should be executed before the installation.
|
||||||
|
"""
|
||||||
|
for cmd in deps.before:
|
||||||
|
logger.info('Running: %s', cmd)
|
||||||
|
subprocess.run(cmd, shell=True, check=True)
|
||||||
|
|
||||||
|
def _run_after_commands(self, deps: Dependencies):
|
||||||
|
"""
|
||||||
|
Runs any commands that should be executed after the installation.
|
||||||
|
"""
|
||||||
|
for cmd in deps.after:
|
||||||
|
logger.info('Running: %s', cmd)
|
||||||
|
subprocess.run(cmd, shell=True, check=True)
|
||||||
|
|
||||||
@contextmanager
|
@contextmanager
|
||||||
def _prepare_src_dir(self) -> Generator[str, None, None]:
|
def _prepare_src_dir(self) -> Generator[str, None, None]:
|
||||||
|
@ -146,12 +161,15 @@ class VenvBuilder(BaseBuilder):
|
||||||
install_context=InstallContext.VENV,
|
install_context=InstallContext.VENV,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self._run_before_commands(deps)
|
||||||
self._install_system_packages(deps)
|
self._install_system_packages(deps)
|
||||||
|
|
||||||
with self._prepare_src_dir():
|
with self._prepare_src_dir():
|
||||||
self._prepare_venv()
|
self._prepare_venv()
|
||||||
|
|
||||||
self._install_extra_pip_packages(deps)
|
self._install_extra_pip_packages(deps)
|
||||||
|
self._run_after_commands(deps)
|
||||||
|
|
||||||
self._print_instructions(
|
self._print_instructions(
|
||||||
textwrap.dedent(
|
textwrap.dedent(
|
||||||
f"""
|
f"""
|
||||||
|
|
Loading…
Reference in a new issue