$value) { $candidate[$value] = $data[$key]; } $candidateData[] = $candidate; } fclose($handle); } else { error_log('Error opening candidates file'); exit(1); } if (empty($candidateData)) { error_log("Failed to load any candidates for " . $councilData['shortName']); } if (isset($options['media-file'])) { $mediaFileContents = file_get_contents($options['media-file']); } else { error_log("Error: Missing required option '--media-file'."); exit(1); } $mediaData = json_decode($mediaFileContents, true); $renderer = new SPLPageRenderer(); $pageContent = $renderer->renderCouncilPage($councilData, $candidateData, $mediaData); if ($pageContent === null) { exit(2); } echo $pageContent; exit(0);