mapid/fifo-webui/command.php

90 lines
1.6 KiB
PHP

<?php
require_once("vendor/autoload.php");
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . "/..");
$dotenv->load();
//define("FIFO", "/tmp/mapid");
define("FIFO", $_ENV['FIFO']);
if (!file_exists(FIFO)) {
$ErrorDoc = <<<EOT
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<h3 style="color:red;">Error: FIFO file “%FIFO%” does not exist!</h3>
<p>
Is <tt>fifo_bridge.py</tt> running?
</p>
<p>
<a href="./">
<button>
Return
</button>
</a>
</p>
</body>
</html>
EOT;
$ErrorDoc = str_replace("%FIFO%", FIFO, $ErrorDoc);
die($ErrorDoc);
}
$f = fopen(FIFO, "w+");
if (count($_POST) == 0) {
/**
* Support httpie like this:
* http --print=HBhb POST mcp.local:8080/~malte70/mapid-fifo-webui/command.php cmd=cls
*/
$_POST = json_decode(file_get_contents('php://input'), true);
}
switch (@$_POST["cmd"]) {
case "getty":
fwrite($f, "GETTY");
break;
case "cls":
fwrite($f, "CLS");
break;
case "on":
fwrite($f, "ON");
break;
case "off":
fwrite($f, "OFF");
break;
case "lcdon":
fwrite($f, "LCDON");
break;
case "lcdoff":
fwrite($f, "LCDOFF");
break;
case "line":
fwrite($f, "LINE ");
fwrite($f, $_POST["line"]);
break;
case "echo":
fwrite($f, "ECHO ");
fwrite($f, $_POST["text"]);
break;
case "echo2":
fwrite($f, "CLS\n");
fwrite($f, "LINE 1\n");
fwrite($f, "ECHO ");
fwrite($f, substr($_POST["line1"], 0, 16));
fwrite($f, "\n");
fwrite($f, "LINE 2\n");
fwrite($f, "ECHO ");
fwrite($f, substr($_POST["line2"], 0, 16));
break;
}
fwrite($f, "\n");
fclose($f);
//header("Refresh: 5; url=./");
header("Location: ./");