feat(output): add wrapper and failed conversion handling
This commit is contained in:
40
output/README.md
Normal file
40
output/README.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Output Pipeline Overview
|
||||
|
||||
This directory contains the post-processing side of ResumeCustomizer. It is responsible for taking job-targeted Markdown resumes produced elsewhere in the system and turning them into printable DOCX/PDF artifacts.
|
||||
|
||||
## Directory Layout
|
||||
- `ForRelease/inbox`: drop a single `*.md` file here to trigger conversion.
|
||||
- `ForRelease/outbox/YYYY/MM/DD/HHMM`: conversion results (paired `.docx` and `.pdf`) organized by timestamp so repeated runs never overwrite each other.
|
||||
- `ForRelease/processed/YYYY/MM/DD/HHMM`: archives of Markdown files that converted successfully.
|
||||
- `ForRelease/failed`: Markdown files that encountered an error during conversion (contains `.gitkeep` to preserve the directory).
|
||||
- `Docker/`: container definition, watcher script, and helper wrapper that run the conversion daemon.
|
||||
|
||||
## Running the Output Processor
|
||||
Use the wrapper so the container writes files with your UID/GID:
|
||||
|
||||
```bash
|
||||
cd output/Docker
|
||||
./run-output-processor.sh up -d
|
||||
```
|
||||
|
||||
The script detects either the Docker Compose plugin or the legacy `docker-compose` binary and forwards any additional arguments you supply (`down`, `logs`, etc.).
|
||||
|
||||
## What the Watcher Does
|
||||
1. Polls `ForRelease/inbox` every few seconds for Markdown files.
|
||||
2. Runs Pandoc using the shared DOCX and LaTeX templates to generate DOCX/PDF.
|
||||
3. Drops the exports into the timestamped folder under `ForRelease/outbox`.
|
||||
4. Moves the original Markdown into the matching timestamp folder under `ForRelease/processed`.
|
||||
5. If the Pandoc conversion fails, moves the Markdown into `ForRelease/failed` so it can be reviewed without blocking subsequent runs.
|
||||
|
||||
## Prerequisites
|
||||
- Docker Engine with either the Compose plugin (`docker compose`) or standalone `docker-compose`.
|
||||
- Pandoc templates available under `input/templates` relative to the repo root (mounted read-only into the container).
|
||||
|
||||
Stop the service with:
|
||||
|
||||
```bash
|
||||
cd output/Docker
|
||||
./run-output-processor.sh down
|
||||
```
|
||||
|
||||
Log output is available through `./run-output-processor.sh logs -f`.
|
||||
Reference in New Issue
Block a user