You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
165 lines
5.7 KiB
165 lines
5.7 KiB
3 weeks ago
|
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||
|
<%@ page import="java.io.BufferedReader, java.io.InputStreamReader, java.io.IOException, java.io.StringWriter, java.io.PrintWriter" %>
|
||
|
<html>
|
||
|
<head>
|
||
|
<title>Ladejobs</title>
|
||
|
<style>
|
||
|
body {
|
||
|
font-family: Arial, sans-serif;
|
||
|
margin: 0; /* Ensure no extra margin */
|
||
|
padding: 0; /* Ensure no extra padding */
|
||
|
overflow: visible; /* Ensure content is fully visible */
|
||
|
}
|
||
|
|
||
|
table {
|
||
|
width: 100%; /* Ensure table takes full width */
|
||
|
border-collapse: collapse;
|
||
|
font-size: small;
|
||
|
}
|
||
|
table, th, td {
|
||
|
border: 1px solid black;
|
||
|
}
|
||
|
th, td {
|
||
|
padding: 7px;
|
||
|
text-align: left;
|
||
|
white-space: normal;
|
||
|
}
|
||
|
th {
|
||
|
background-color: #f2f2f2;
|
||
|
}
|
||
|
td {
|
||
|
background-color: white;
|
||
|
}
|
||
|
|
||
|
.container {
|
||
|
display: flex;
|
||
|
flex-direction: row; /* Align items vertically */
|
||
|
align-items: flex-start;
|
||
|
width: 100%; /* Ensure container takes full width */
|
||
|
height: 100%; /* Ensure container takes full height */
|
||
|
overflow: visible; /* Ensure content is fully visible */
|
||
|
}
|
||
|
|
||
|
.traffic-light-container {
|
||
|
margin-top: 10px;
|
||
|
margin-left: 20px; /* Adjust the margin as needed */
|
||
|
}
|
||
|
|
||
|
.traffic-light {
|
||
|
width: 40px; /* Reduced width */
|
||
|
background-color: #333;
|
||
|
padding: 10px; /* Reduced padding */
|
||
|
border-radius: 10px;
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
align-items: center;
|
||
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
|
||
|
}
|
||
|
|
||
|
.light {
|
||
|
width: 30px; /* Reduced width */
|
||
|
height: 30px; /* Reduced height */
|
||
|
margin: 5px 0; /* Reduced margin */
|
||
|
border-radius: 50%;
|
||
|
background-color: #555;
|
||
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
|
||
|
}
|
||
|
|
||
|
.light.red {
|
||
|
background-color: rgb(70, 0, 0);
|
||
|
}
|
||
|
|
||
|
.light.red.on {
|
||
|
background-color: red;
|
||
|
box-shadow: 0 0 10px rgba(255, 0, 0, 0.5);
|
||
|
}
|
||
|
|
||
|
.light.yellow {
|
||
|
background-color: rgb(70, 70, 0);
|
||
|
}
|
||
|
|
||
|
.light.yellow.on {
|
||
|
background-color: yellow;
|
||
|
box-shadow: 0 0 10px rgba(255, 255, 0, 0.5);
|
||
|
}
|
||
|
|
||
|
.light.green {
|
||
|
background-color: rgb(0, 70, 0);
|
||
|
}
|
||
|
|
||
|
.light.green.on {
|
||
|
background-color: rgb(0, 255, 0);
|
||
|
box-shadow: 0 0 10px rgba(0, 255, 0, 0.5);
|
||
|
}
|
||
|
</style>
|
||
|
</head>
|
||
|
<body>
|
||
|
<div class="container">
|
||
|
<div>
|
||
|
<%
|
||
|
boolean allSuccess = true;
|
||
|
boolean anyRunning = false;
|
||
|
try {
|
||
|
Runtime runtime = Runtime.getRuntime();
|
||
|
|
||
|
// Execute the system command
|
||
|
String[] commands = {"/bin/sh", "-c", "cd ~/alex_skripte/laderoutine && laderoutine.sh"};
|
||
|
Process process = runtime.exec(commands);
|
||
|
|
||
|
// Read the output of the command
|
||
|
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
|
||
|
String line;
|
||
|
|
||
|
// Start HTML table
|
||
|
out.println("<table>");
|
||
|
out.println("<tr><th>Modul</th><th>Start</th><th>Ende</th><th>Status</th></tr>");
|
||
|
|
||
|
// Process each line and add to the table
|
||
|
while ((line = reader.readLine()) != null) {
|
||
|
// Split the line into columns
|
||
|
String[] columns = line.split("\\t");
|
||
|
out.println("<tr>");
|
||
|
for (String column : columns) {
|
||
|
out.println("<td>" + column + "</td>");
|
||
|
}
|
||
|
out.println("</tr>");
|
||
|
|
||
|
// Check the status column (assuming it's the fourth column)
|
||
|
String status = columns[3].trim();
|
||
|
if (status.equals("Fehler")) {
|
||
|
allSuccess = false;
|
||
|
} else if (status.equals("läuft gerade...")) {
|
||
|
anyRunning = true;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// End HTML table
|
||
|
out.println("</table>");
|
||
|
|
||
|
// Read the error stream of the command
|
||
|
BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
|
||
|
while ((line = errorReader.readLine()) != null) {
|
||
|
out.println("ERROR: " + line);
|
||
|
}
|
||
|
|
||
|
// Wait for the command to complete
|
||
|
int exitCode = process.waitFor();
|
||
|
// out.println("<p>Exited with code: " + exitCode + "</p>");
|
||
|
} catch (IOException | InterruptedException e) {
|
||
|
StringWriter sw = new StringWriter();
|
||
|
e.printStackTrace(new PrintWriter(sw));
|
||
|
out.println("Error: " + sw.toString());
|
||
|
}
|
||
|
%>
|
||
|
</div>
|
||
|
<div class="traffic-light-container">
|
||
|
<div class="traffic-light">
|
||
|
<div class="light red <% if (!allSuccess) { %>on<% } %>"></div>
|
||
|
<div class="light yellow <% if (anyRunning && allSuccess) { %>on<% } %>"></div>
|
||
|
<div class="light green <% if (allSuccess && !anyRunning) { %>on<% } %>"></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</body>
|
||
|
</html>
|