Some checks failed
CI / test-unit (push) Has been cancelled
CI / test-integration (push) Has been cancelled
CI / test-env-virtual (push) Has been cancelled
CI / test-env-nix (push) Has been cancelled
CI / test-e2e (push) Has been cancelled
CI / test-virgin-user (push) Has been cancelled
CI / test-virgin-root (push) Has been cancelled
CI / codesniffer-shellcheck (push) Has been cancelled
CI / codesniffer-ruff (push) Has been cancelled
* Add `force_update` to `RepoContext` and propagate it through install/update flows * Add `pkgmgr install --update` to force re-running installers even if the same CLI layer is already loaded * Enhance `NixFlakeInstaller` to ensure correct outputs (pkgmgr + optional default for package-manager) and support refresh/upgrade with index-based fallback remove+reinstall * Make Python/Makefile installers emit an “upgraded” marker when `force_update` is used * Add E2E tests for “three times install” scenarios (makefile, nix, venv) with shared run helper * Fix git safe.directory wildcard quoting in E2E shell runner and minor cleanup/reordering of imports/comments https://chatgpt.com/share/693db0b4-6ea4-800f-b44a-f03939c7fb9e
25 lines
558 B
Python
25 lines
558 B
Python
import subprocess
|
|
|
|
|
|
def run(cmd, *, cwd=None, env=None, shell=False) -> str:
|
|
proc = subprocess.run(
|
|
cmd,
|
|
cwd=cwd,
|
|
env=env,
|
|
shell=shell,
|
|
text=True,
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.STDOUT,
|
|
)
|
|
|
|
print("----- BEGIN COMMAND -----")
|
|
print(cmd if isinstance(cmd, str) else " ".join(cmd))
|
|
print("----- OUTPUT -----")
|
|
print(proc.stdout.rstrip())
|
|
print("----- END COMMAND -----")
|
|
|
|
if proc.returncode != 0:
|
|
raise AssertionError(proc.stdout)
|
|
|
|
return proc.stdout
|