From: Daan De Meyer Date: Mon, 4 Dec 2023 05:38:58 +0000 (+0100) Subject: Passthrough stdin/stdout in Image X-Git-Tag: v20~114^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1851185082bee28d659048dd4fb7acdd0fd7c31b;p=thirdparty%2Fmkosi.git Passthrough stdin/stdout in Image --- diff --git a/tests/__init__.py b/tests/__init__.py index f1dd0c7a6..a031c1705 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,6 +1,7 @@ # SPDX-License-Identifier: LGPL-2.1+ import os +import sys import tempfile from collections.abc import Sequence from types import TracebackType @@ -9,7 +10,7 @@ from typing import Optional from mkosi.distributions import Distribution, detect_distribution from mkosi.log import die from mkosi.run import run -from mkosi.types import CompletedProcess, PathString +from mkosi.types import _FILE, CompletedProcess, PathString from mkosi.util import INVOKING_USER @@ -48,6 +49,7 @@ class Image: verb: str, options: Sequence[PathString] = (), args: Sequence[str] = (), + stdin: _FILE = None, user: Optional[int] = None, group: Optional[int] = None, ) -> CompletedProcess: @@ -66,16 +68,30 @@ class Image: "--qemu-mem=4G", verb, *args, - ], user=user, group=group) + ], stdin=stdin, stdout=sys.stdout, user=user, group=group) def build(self, options: Sequence[str] = (), args: Sequence[str] = ()) -> CompletedProcess: - return self.mkosi("build", [*options, "--debug", "--force"], args, user=INVOKING_USER.uid, group=INVOKING_USER.gid) + return self.mkosi( + "build", + [*options, "--debug", "--force"], + args, + stdin=sys.stdin if sys.stdin.isatty() else None, + user=INVOKING_USER.uid, + group=INVOKING_USER.gid, + ) def boot(self, options: Sequence[str] = (), args: Sequence[str] = ()) -> CompletedProcess: - return self.mkosi("boot", [*options, "--debug"], args) + return self.mkosi("boot", [*options, "--debug"], args, stdin=sys.stdin if sys.stdin.isatty() else None) def qemu(self, options: Sequence[str] = (), args: Sequence[str] = ()) -> CompletedProcess: - return self.mkosi("qemu", [*options, "--debug"], args, user=INVOKING_USER.uid, group=INVOKING_USER.gid) + return self.mkosi( + "qemu", + [*options, "--debug"], + args, + stdin=sys.stdin if sys.stdin.isatty() else None, + user=INVOKING_USER.uid, + group=INVOKING_USER.gid, + ) def summary(self, options: Sequence[str] = ()) -> CompletedProcess: return self.mkosi("summary", options, user=INVOKING_USER.uid, group=INVOKING_USER.gid)