argparse_manpage: cleanup, add tests, fix CLI

This commit is contained in:
Joachim Mairböck
2024-08-25 12:42:27 +02:00
parent 705df55102
commit 1d6af37bf2

View File

@@ -0,0 +1,32 @@
From c2bf43d175936336e6528d2c4ca36fd3c2bfe3c8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joachim=20Mairb=C3=B6ck?= <j.mairboeck@gmail.com>
Date: Sun, 25 Aug 2024 12:21:53 +0200
Subject: Use sys.stdout instead of /dev/stdout
`/dev/stdout` isn't portable, it isn't available everywhere, e.g. on Haiku.
diff --git a/argparse_manpage/tooling.py b/argparse_manpage/tooling.py
index ef5c59c..1452518 100644
--- a/argparse_manpage/tooling.py
+++ b/argparse_manpage/tooling.py
@@ -71,9 +71,11 @@ def write_to_filename(text, filename):
Write given text into a filename at once. Pre-create the parent directory
if it doesn't exist yet. Print to stdout if filename == '-'.
"""
- filename = filename if filename != '-' else '/dev/stdout'
- dirname = os.path.dirname(filename)
- if dirname and not os.path.exists(dirname):
- os.makedirs(dirname)
- with open(filename, 'w') as stream:
- stream.write(text)
+ if filename == '-':
+ sys.stdout.write(text)
+ else:
+ dirname = os.path.dirname(filename)
+ if dirname and not os.path.exists(dirname):
+ os.makedirs(dirname)
+ with open(filename, 'w') as stream:
+ stream.write(text)
--
2.45.2