From 174c6fba16e9dde3fc097aea96637fb61fd0a1ff Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Fri, 11 Sep 2026 20:47:20 +0200 Subject: [PATCH] cmds.projects.CmdCreateFile: Fix spurious trailing newline create-file and create-pkg-config both print the rendered template with a newline appended over the original template, owed to using print() instead of sys.stdout.write(). Fix that. Signed-off-by: Jan Lindemann --- src/python/jw/pkg/cmds/projects/CmdCreateFile.py | 4 +++- .../jw/pkg/cmds/projects/CmdCreatePkgConfig.py | 15 ++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/python/jw/pkg/cmds/projects/CmdCreateFile.py b/src/python/jw/pkg/cmds/projects/CmdCreateFile.py index dfe5b95f..dcd5c944 100644 --- a/src/python/jw/pkg/cmds/projects/CmdCreateFile.py +++ b/src/python/jw/pkg/cmds/projects/CmdCreateFile.py @@ -1,3 +1,5 @@ +import sys + from argparse import ArgumentParser, ArgumentTypeError, Namespace from enum import Enum, auto from typing import override @@ -132,4 +134,4 @@ class CmdCreateFile(Cmd): # export method = getattr(self, 'render_' + args.format, None) if method is None: # Should be prevented by choices=[] but keeps linter happy raise Exception(f'Unsupported output format {args.format}') - print(method(args.module, args.field)) + sys.stdout.write(method(args.module, args.field)) diff --git a/src/python/jw/pkg/cmds/projects/CmdCreatePkgConfig.py b/src/python/jw/pkg/cmds/projects/CmdCreatePkgConfig.py index f5dab4a5..7c0d9684 100644 --- a/src/python/jw/pkg/cmds/projects/CmdCreatePkgConfig.py +++ b/src/python/jw/pkg/cmds/projects/CmdCreatePkgConfig.py @@ -1,5 +1,7 @@ from __future__ import annotations +import sys + from typing import TYPE_CHECKING, override from .Cmd import Cmd, Parent @@ -74,16 +76,19 @@ class CmdCreatePkgConfig(Cmd): # export ] ) + extra: list[str] = [] if args.cflags is not None: - contents += f'Cflags: {args.cflags}\n' + extra.append(f'Cflags: {args.cflags}') if args.libflags is not None: - contents += f'Libs: {args.libflags}\n' + extra.append(f'Libs: {args.libflags}') val = merged.get('requires_run') if val is not None: - contents += f'Requires: {self.__cleanup_requires(val)}' + extra.append(f'Requires: {self.__cleanup_requires(val)}') val = merged.get('requires_build') if val is not None: - contents += (f'Requires.private: {self.__cleanup_requires(val)}') + extra.append(f'Requires.private: {self.__cleanup_requires(val)}') # not sure what to do with requires_devel - print(contents) + if extra: + contents += '\n'.join(extra) + sys.stdout.write(contents)