From 45a18c0ecb364c42307641b4057ff5a814e69b2e Mon Sep 17 00:00:00 2001 From: Leonardo Bishop Date: Fri, 25 Apr 2025 00:54:15 +0100 Subject: Version control --- util.php | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 util.php (limited to 'util.php') diff --git a/util.php b/util.php new file mode 100644 index 0000000..b5cb9c7 --- /dev/null +++ b/util.php @@ -0,0 +1,94 @@ +name = $name; + $this->containerId = $containerId; + $this->status = $status; + $this->startedAt = $startedAt; + $this->finishedAt = $finishedAt; + $this->isNotFound = $isNotFound; + } +} + +function getDockerStatus($containerName): ServiceStatus +{ + $dockerOutput = exec('sudo docker inspect --format=\'{{.Id}} {{.State.Status}} {{.State.StartedAt}} {{.State.FinishedAt}}\' ' . $containerName); + if (empty($dockerOutput)) { + return new ServiceStatus($containerName, '-', '-', '-', '-', true); + } + $parts = explode(' ', $dockerOutput); + $status = new ServiceStatus($containerName, substr($parts[0], 0, 12), $parts[1], $parts[2], $parts[3], false); + return $status; +} + +function createStatusTable(ServiceStatus $status) +{ + echo (''); + echo (''); + echo (''); + echo (''); + echo (''); + echo (''); + echo (''); + echo (''); + echo (''); + echo ('
Container IDNameStatusStarted atFinished at
' . $status->containerId . '' . $status->name . '' . $status->status . '' . $status->startedAt . '' . $status->finishedAt . '
'); +} + +function createStatusBanner(ServiceStatus $status) +{ + if ($status->isNotFound) { + createBanner('✗', "Container '" . $status->name . "' not found", 'bad'); + return; + } + $state = $status->status === 'running' ? 'good' : 'bad'; + $symbol = $status->status === 'running' ? '✓' : '✗'; + createBanner($symbol, "Status of '$status->name' is '$status->status'", $state); +} + +function createBanner($symbol, $message, $state) +{ + echo ('
'); + echo ("

$symbol $message

"); + echo ('
'); +} + +function doShellExec($command, $redirect, $action) +{ + $output = shell_exec($command); + //if (empty($output)) { + // header("Location: $redirect"); + // exit; + //} + echo "

Output of $action

"; + echo "
$output
"; + echo "

[Acknowledge]

"; + exit; +} + +function doSessionCheck($redirect) +{ + if (!isset($_SESSION['token']) || $_SESSION['token'] !== getSuperSecretToken()) { + header('Location: authenticate.php?redirect=/' . $redirect); + exit; + } +} + +include('key.php'); + +function getSuperSecretToken() +{ + global $superSecretToken; + return $superSecretToken; +} -- cgit v1.2.3-70-g09d2