From 0a8e788067e097ccf4e56ae80e87d5673c68cced Mon Sep 17 00:00:00 2001 From: Harald Sitter Date: Sat, 30 Aug 2025 18:07:17 +0200 Subject: [PATCH] basic-test: also send logs on failure --- mkosi.extra/live/usr/bin/_kde-linux-basic-test | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/mkosi.extra/live/usr/bin/_kde-linux-basic-test b/mkosi.extra/live/usr/bin/_kde-linux-basic-test index 686486d..f5ab86a 100755 --- a/mkosi.extra/live/usr/bin/_kde-linux-basic-test +++ b/mkosi.extra/live/usr/bin/_kde-linux-basic-test @@ -29,10 +29,19 @@ while True: if Path('/run/user/1000/kde-linux-bless-session').is_file(): failed = json.loads(subprocess.check_output(["systemctl", "--failed", "--output=json"])) if len(failed) > 0: + with open('data.file', 'w') as f: + for unit in failed: + f.write("\n") + f.write(json.dumps(unit)) + f.write("\n") + try: + f.write(subprocess.check_output(['journalctl', '--no-pager', f'_SYSTEMD_UNIT={unit['unit']}']).decode('utf-8')) + except Exception as e: + f.write(f"Failed to get journal for {unit['unit']}: {e}\n") + f.write("\n") # make sure we have a final newline subprocess.check_call(['curl', '--request', 'GET', - '--header', 'Content-type: application/json', - '--data', json.dumps(failed), + '--data-binary', '@data.file', # use binary as otherwise curl will eat the newlines bad_callback]) else: subprocess.check_call(['curl', callback])