generate-diagrams.sh - UML Diagram Generation

            flowchart TD
                Start([Start]) --> Check["Check prerequisites
Python + Graphviz/ImageMagick"] Check --> CheckDot{dot command
available?} CheckDot -->|no| CheckFallback{ImageMagick +
potrace available?} CheckDot -->|yes| GenCompact["Generate compact UML
pyreverse -A -S -m y"] GenCompact --> RenderDot1["Render DOT to SVG
dot -Tsvg"] RenderDot1 --> CheckDot2{Detailed diagram?} CheckFallback -->|yes| GenPNG["Generate PNG
pyreverse output"] CheckFallback -->|no| ErrorFail["FAIL: No renderer
available"] GenPNG --> ConvertPNG["Convert PNG to PNM
ImageMagick convert"] ConvertPNG --> TracePNM["Trace PNM to SVG
potrace"] TracePNM --> CheckDot2 GenCompact --> GenDetailed["Generate detailed UML
pyreverse -f ALL -A -S"] CheckDot2 -->|yes| RenderDetailed GenDetailed --> CheckDot3{dot command
available?} CheckDot3 -->|yes| RenderDetailed["Render detailed DOT to SVG"] CheckDot3 -->|no| DetailedFallback["Try PNG/potrace fallback"] DetailedFallback --> CheckFallback2{ImageMagick +
potrace?} CheckFallback2 -->|yes| ConvertDetailed["Convert to SVG"] CheckFallback2 -->|no| DetailedFail["Skip detailed diagram"] RenderDetailed --> GenPackages["Generate packages diagram
pyreverse -o dot"] DetailedFail --> GenPackages ConvertDetailed --> GenPackages GenPackages --> CheckDot4{dot command
available?} CheckDot4 -->|yes| RenderPackages["Render packages DOT to SVG"] CheckDot4 -->|no| PackagesFallback["Try PNG/potrace fallback"] RenderPackages --> Cleanup["Clean up intermediate files
*.dot, *.png, *.pnm"] PackagesFallback --> Fallback2{ImageMagick +
potrace?} Fallback2 -->|yes| ConvertPackages["Convert to SVG"] Fallback2 -->|no| PackagesFail["Skip packages diagram"] ConvertPackages --> Cleanup PackagesFail --> Cleanup Cleanup --> SaveOutput["Save SVGs to
docs/reference/diagrams/"] SaveOutput --> Success([Diagrams generated]) ErrorFail --> Fail([Exit with error]) Success -.-> Fail classDef action fill:#ecfeff,stroke:#06b6d4 classDef decision fill:#fef3c7,stroke:#f59e0b classDef success fill:#d1fae5,stroke:#10b981 classDef error fill:#fee2e2,stroke:#ef4444 class GenCompact,RenderDot1,GenDetailed,RenderDetailed,GenPackages,RenderPackages,Cleanup,SaveOutput action class Check,CheckDot,CheckFallback,CheckDot2,CheckDot3,CheckFallback2,CheckDot4,Fallback2 decision class Success success class ErrorFail,Fail,DetailedFail,PackagesFail error

Back to build scripts