| #!/usr/bin/env python3 |
| import argparse |
| import os |
| import sys |
| import tempfile |
| |
| |
| def run(prefix=None, suffix=None): |
| """ Reads text from stdin, writes it to a temporary file. |
| |
| The path of the temporary file is printed to stdout on success. |
| """ |
| try: |
| with tempfile.NamedTemporaryFile(mode='w+', |
| delete=False, |
| encoding='utf-8', |
| prefix=prefix, |
| suffix=suffix) as temp_file: |
| for line in sys.stdin: |
| temp_file.write(line) |
| temp_file.flush() |
| temp_file_path = temp_file.name |
| |
| print(temp_file_path) |
| |
| except Exception as e: |
| print(f"An error occurred: {e}", file=sys.stderr) |
| sys.exit(1) |
| |
| |
| if __name__ == "__main__": |
| parser = argparse.ArgumentParser( |
| description="Writes stdin to a temporary file and then print the path.", |
| ) |
| parser.add_argument('--prefix', |
| help="Optional prefix for the temporary file name.") |
| parser.add_argument('--suffix', |
| help="Optional suffix for the temporary file name.") |
| args = parser.parse_args() |
| run(prefix=args.prefix, suffix=args.suffix) |