Skip to content

Commit 433c041

Browse files
committed
feat: complete Phase 5 - integration & main entry point
Add main application entry point and integration layer: src/index.ts (415 lines): - Main entry point that orchestrates entire application lifecycle - Initialize data directory and load configuration - Parse CLI arguments for connection modes and config overrides - Initialize all managers (Config, Context, Connection, Backend) - Initialize all services (Polling, Camera, RTSP, Spoolman, Monitoring) - Connect to printers based on CLI mode (last-used, all-saved, explicit, no-printers) - Start WebUI server and verify successful startup - Setup event forwarding from polling coordinator to WebUI - Start polling for all connected printers - Initialize camera proxies for each context - Handle graceful shutdown on SIGINT/SIGTERM src/utils/HeadlessArguments.ts (220 lines): - CLI argument parser for standalone server configuration - Support 4 connection modes: * --last-used: Connect to last used printer * --all-saved-printers: Connect to all saved printers * --printers="IP:TYPE:CODE,...": Connect to specific printers * --no-printers: Start WebUI without printer connections - Support config overrides: * --webui-port=PORT: Override WebUI port * --webui-password=PASSWORD: Override WebUI password - Argument validation with detailed error messages src/utils/setup.ts (75 lines): - Data directory initialization and validation - Ensure data directory exists and is writable - Support DATA_DIR environment variable for custom location - Default location: ./data tsconfig.json: - Add src/index.ts to include array for compilation Build output: - dist/index.js: Main entry point (14.9KB compiled) - dist/utils/HeadlessArguments.js: CLI parser (5.2KB) - dist/utils/setup.js: Data directory setup (3.7KB) Type check: 0 errors Build: Success Phase 5 Integration & Testing: Complete
1 parent 60f81f2 commit 433c041

4 files changed

Lines changed: 698 additions & 0 deletions

File tree

0 commit comments

Comments
 (0)