status)) { $data = $p_status->status; } else { $data = array(); } if (isset($data->platform)) { self::output_status("KERNEL_VERSION", $data->platform->release); self::output_status("MACHINE_ARCHITECTURE", $data->platform->machine); self::output_status("TOTAL_MEMORY_MBYTES", $data->platform->memory); self::output_status("TOTAL_SWAP_MBYTES", $data->platform->swap); self::output_status("AIRTIME_VERSION", $data->airtime_version); } else { self::output_status("KERNEL_VERSION", "UNKNOWN"); self::output_status("MACHINE_ARCHITECTURE", "UNKNOWN"); self::output_status("TOTAL_MEMORY_MBYTES", "UNKNOWN"); self::output_status("TOTAL_SWAP_MBYTES", "UNKNOWN"); self::output_status("AIRTIME_VERSION", "UNKNOWN"); } self::output_status("OS", self::CheckOsTypeVersion()); self::output_status("CPU", self::GetCpuInfo()); self::output_status("WEB_SERVER", self::GetServerType($p_baseUrl, $p_basePort)); if (isset($data->services)) { $services = $data->services; } else { $services = array(); } if (isset($services->pypo) && $services->pypo->process_id != "FAILED") { self::output_status("PLAYOUT_ENGINE_PROCESS_ID", $data->services->pypo->process_id); self::output_status("PLAYOUT_ENGINE_RUNNING_SECONDS", $data->services->pypo->uptime_seconds); self::output_status("PLAYOUT_ENGINE_MEM_PERC", $data->services->pypo->memory_perc); self::output_status("PLAYOUT_ENGINE_CPU_PERC", $data->services->pypo->cpu_perc); } else { self::output_status("PLAYOUT_ENGINE_PROCESS_ID", "FAILED"); self::output_status("PLAYOUT_ENGINE_RUNNING_SECONDS", "0"); self::output_status("PLAYOUT_ENGINE_MEM_PERC", "0%"); self::output_status("PLAYOUT_ENGINE_CPU_PERC", "0%"); $log = "/var/log/airtime/pypo/pypo.log"; self::show_log_file($log); } if (isset($services->liquidsoap) && $services->liquidsoap->process_id != "FAILED") { self::output_status("LIQUIDSOAP_PROCESS_ID", $data->services->liquidsoap->process_id); self::output_status("LIQUIDSOAP_RUNNING_SECONDS", $data->services->liquidsoap->uptime_seconds); self::output_status("LIQUIDSOAP_MEM_PERC", $data->services->liquidsoap->memory_perc); self::output_status("LIQUIDSOAP_CPU_PERC", $data->services->liquidsoap->cpu_perc); } else { self::output_status("LIQUIDSOAP_PROCESS_ID", "FAILED"); self::output_status("LIQUIDSOAP_RUNNING_SECONDS", "0"); self::output_status("LIQUIDSOAP_MEM_PERC", "0%"); self::output_status("LIQUIDSOAP_CPU_PERC", "0%"); $log = "/var/log/airtime/pypo-liquidsoap/ls_script.log"; self::show_log_file($log); } if (isset($services->media_monitor) && $services->media_monitor->process_id != "FAILED") { self::output_status("MEDIA_MONITOR_PROCESS_ID", $data->services->media_monitor->process_id); self::output_status("MEDIA_MONITOR_RUNNING_SECONDS", $data->services->media_monitor->uptime_seconds); self::output_status("MEDIA_MONITOR_MEM_PERC", $data->services->media_monitor->memory_perc); self::output_status("MEDIA_MONITOR_CPU_PERC", $data->services->media_monitor->cpu_perc); } else { self::output_status("MEDIA_MONITOR_PROCESS_ID", "FAILED"); self::output_status("MEDIA_MONITOR_RUNNING_SECONDS", "0"); self::output_status("MEDIA_MONITOR_MEM_PERC", "0%"); self::output_status("MEDIA_MONITOR_CPU_PERC", "0%"); $log = "/var/log/airtime/media-monitor/media-monitor.log"; self::show_log_file($log); } } if (self::$AIRTIME_STATUS_OK){ self::output_comment("Your installation of Airtime looks OK!"); exit(0); } else { self::output_comment("There appears to be a problem with your Airtime installation."); self::output_comment("Please visit http://wiki.sourcefabric.org/x/HABQ"); exit(1); } } public static function show_log_file($log) { self::output_comment("Check the log file $log"); self::output_comment(""); } public static function output_comment($comment){ if (!is_array($comment)) { $comment = array($comment); } foreach ($comment as $c) { echo "-- $c".PHP_EOL; } } public static function output_status($key, $value){ global $showColor; $RED = "[0;31m"; $ORANGE = "[0;33m"; $GREEN = "[1;32m"; $color = $GREEN; if ($value == "FAILED"){ $color = $RED; self::$AIRTIME_STATUS_OK = false; } else if ($value == "NOT MONITORED"){ $color = $ORANGE; self::$AIRTIME_STATUS_OK = false; } if ($showColor) echo sprintf("%-31s= %s", $key, self::term_color($value, $color)).PHP_EOL; else echo sprintf("%-31s= %s", $key, $value).PHP_EOL; } public static function term_color($text, $color){ if($color == ""){ $color = "[0m"; } return chr(27)."$color$text".chr(27)."[0m"; } }