From eec0f25734f352d84cb9b18f65c5490cd79b94c1 Mon Sep 17 00:00:00 2001 From: Heiko Thiery Date: Fri, 28 Feb 2025 12:03:55 +0100 Subject: [PATCH] utils/generate-cyclonedx: fix detecting of tty Check if the script shall read from stdin if data is piped into. Otherwise read from the input file or if not specified print usage and exit. Signed-off-by: Heiko Thiery Signed-off-by: Peter Korsgaard --- utils/generate-cyclonedx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/utils/generate-cyclonedx b/utils/generate-cyclonedx index 993d7154ef..365c2b06ea 100755 --- a/utils/generate-cyclonedx +++ b/utils/generate-cyclonedx @@ -273,13 +273,19 @@ def main(): Example usage: make show-info | utils/generate-cyclonedx.py | jq > sbom.json ''' ) - parser.add_argument("-i", "--in-file", nargs="?", type=argparse.FileType("r"), default=sys.stdin) - parser.add_argument("-o", "--out-file", nargs="?", type=argparse.FileType("w"), default=sys.stdout) + parser.add_argument("-i", "--in-file", nargs="?", type=argparse.FileType("r"), + default=(None if sys.stdin.isatty() else sys.stdin)) + parser.add_argument("-o", "--out-file", nargs="?", type=argparse.FileType("w"), + default=sys.stdout) parser.add_argument("--virtual", default=False, action='store_true', help="This option includes virtual packages to the CycloneDX output") args = parser.parse_args() + if args.in_file is None: + parser.print_help() + sys.exit(1) + show_info_dict = json.load(args.in_file) # Remove rootfs and virtual packages if not explicitly included