threadr.lostcave.ddnss.de/strassenkind.php

71 lines
2.3 KiB
PHP

<!DOCTYPE html>
<!--
<?php
function get_command_list($command_file_name){
echo "Getting commands from file $command_file_name...\n";
$command_file = fopen($command_file_name, "r") or die("Could not read file $command_file_name. Aborting.\n");
$commands = explode(PHP_EOL, fread($command_file, filesize($command_file_name)));
fclose($command_file);
echo "Done.\n";
return $commands;
}
$status_commands = get_command_list("commands_status.conf");
$ondemand_commands = get_command_list("commands_ondemand.conf");
$git_commands = get_command_list("commands_git.conf");
?>
-->
<html>
<head>
<title> Strassenkind Server Status Page </title>
<link rel="stylesheet" type="text/css" href="style.css" />
<?php
if (!isset($_POST['ondemand']) && !isset($_POST['git'])) {
echo "<meta http-equiv=\"refresh\" content=\"20\" />";
}
?>
</head>
<body class="status_page">
<h1> Strassenkind Server Status </h1>
<hr />
<?php
function add_button($button_text, $button_action){
if (!isset($_POST[$button_action])) {
echo "<form action=\"\" method=\"post\"><input type=\"submit\" value=\"$button_text\" name=\"$button_action\" /></form>";
} else {
echo "<a href=\"\"><button> Return to regular status commands </button></a>";
}
}
add_button("Run ondemand commands", "ondemand");
add_button("Force ThreadR update", "git");
?>
<hr />
<?php
function execute_command_list($commands){
foreach ($commands as $command) {
if ($command != ""){
// === is here on purpose.
if (strpos($command, '>') === false) {
$command = $command . " 2>&1";
}
$output = shell_exec($command);
echo "<pre class=\"commandLine\"> " . htmlspecialchars($command, $flags=ENT_DISALLOWED | ENT_HTML5 | ENT_QUOTES) . " </pre>\n<pre class=\"commandLine\"> " . htmlspecialchars($output, $flags=ENT_DISALLOWED | ENT_HTML5 | ENT_QUOTES) . " </pre>\n<hr />";
}
}
}
// run ondemand command list if demanded
if (isset($_POST['ondemand'])) {
execute_command_list($ondemand_commands);
} elseif (isset($_POST['git'])) {
execute_command_list($git_commands);
} else {
//run status command list otherwise
execute_command_list($status_commands);
}
?>
</body>
</html>