Sammlung von Shellscripten und Werkzeugen zur SuperX/BI Webanwendung
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.
 
 
 
 

164 lines
5.7 KiB

<%@ 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>