Skip to content
Snippets Groups Projects
Commit 07d35d1c authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

add colors

parent 23e6150a
No related branches found
No related tags found
No related merge requests found
......@@ -3,9 +3,27 @@
// SHARED FUNCTIONS FOR INSTALLER AND BUILDER
// ----------------------------------------------------------------------
$aCol=[
"reset" => "\e[0m",
"red" => "\e[31m",
"green" => "\e[32m",
"yellow" => "\e[33m",
"blue" => "\e[34m",
"magenta" => "\e[35m",
"cyan" => "\e[36m",
"light_gray" => "\e[37m",
"dark_gray" => "\e[90m",
"light_red" => "\e[91m",
"light_green" => "\e[92m",
"light_yellow" => "\e[93m",
"light_blue" => "\e[94m",
"light_magenta" => "\e[95m",
];
function _h1($s): void
{
echo "\n>>>>>>>>>> $s\n";
global $aCol;
echo "\n$aCol[magenta]>>>>>>>>>> $s$aCol[reset]\n";
/*
echo "\n __".str_repeat("_", strlen($s))."\n";
......@@ -16,7 +34,8 @@ function _h1($s): void
}
function _abort($sMessage, $iExitcode = 1): never
{
echo "❌ $sMessage.\n";
global $aCol;
echo "❌ $aCol[red]$sMessage.$aCol[reset]\n";
exit($iExitcode);
}
......@@ -31,11 +50,12 @@ function _skip(string $sMessage=""): void
function _chdir($sDir): void
{
global $aCol;
if (!is_dir($sDir)) {
_abort("Directory '$sDir' not found.");
}
chdir($sDir);
echo "dir # " . getcwd() . "\n";
echo "$aCol[cyan]dir # " . getcwd() . "$aCol[reset]\n";
}
/**
......@@ -45,7 +65,8 @@ function _chdir($sDir): void
*/
function _exec($cmd): void
{
echo "cmd > $cmd\n";
global $aCol;
echo "$aCol[blue]cmd > $cmd$aCol[reset]\n";
exec("$cmd 2>&1", $aOut, $rc);
if (!count($aOut)) {
......@@ -74,146 +95,3 @@ function _mkdir(string $sMyDir): void
}
}
/**
* Compress PHP code
* from https://www.php.net/manual/de/function.php-strip-whitespace.php
* with removed lowercase function
*
* @param string $src source code or filename
* @return bool|string
*/
function compress_php_src(string $src): bool|string
{
// Whitespaces left and right from this signs can be ignored
static $IW = array(
T_CONCAT_EQUAL, // .=
T_DOUBLE_ARROW, // =>
T_BOOLEAN_AND, // &&
T_BOOLEAN_OR, // ||
T_IS_EQUAL, // ==
T_IS_NOT_EQUAL, // != or <>
T_IS_SMALLER_OR_EQUAL, // <=
T_IS_GREATER_OR_EQUAL, // >=
T_INC, // ++
T_DEC, // --
T_PLUS_EQUAL, // +=
T_MINUS_EQUAL, // -=
T_MUL_EQUAL, // *=
T_DIV_EQUAL, // /=
T_IS_IDENTICAL, // ===
T_IS_NOT_IDENTICAL, // !==
T_DOUBLE_COLON, // ::
T_PAAMAYIM_NEKUDOTAYIM, // ::
T_OBJECT_OPERATOR, // ->
T_DOLLAR_OPEN_CURLY_BRACES, // ${
T_AND_EQUAL, // &=
T_MOD_EQUAL, // %=
T_XOR_EQUAL, // ^=
T_OR_EQUAL, // |=
T_SL, // <<
T_SR, // >>
T_SL_EQUAL, // <<=
T_SR_EQUAL, // >>=
);
if (is_file($src)) {
if (!$src = file_get_contents($src)) {
return false;
}
}
$tokens = token_get_all($src);
$new = "";
$c = sizeof($tokens);
$iw = false; // ignore whitespace
$ih = false; // in HEREDOC
$ls = ""; // last sign
$ot = null; // open tag
for ($i = 0; $i < $c; $i++) {
$token = $tokens[$i];
if (is_array($token)) {
list($tn, $ts) = $token; // tokens: number, string, line
$tname = token_name($tn);
if ($tn == T_INLINE_HTML) {
$new .= $ts;
$iw = false;
} else {
if ($tn == T_OPEN_TAG) {
if (strpos($ts, " ") || strpos($ts, "\n") || strpos($ts, "\t") || strpos($ts, "\r")) {
$ts = rtrim($ts);
}
$ts .= " ";
$new .= $ts;
$ot = T_OPEN_TAG;
$iw = true;
} elseif ($tn == T_OPEN_TAG_WITH_ECHO) {
$new .= $ts;
$ot = T_OPEN_TAG_WITH_ECHO;
$iw = true;
} elseif ($tn == T_CLOSE_TAG) {
if ($ot == T_OPEN_TAG_WITH_ECHO) {
$new = rtrim($new, "; ");
} else {
$ts = " " . $ts;
}
$new .= $ts;
$ot = null;
$iw = false;
} elseif (in_array($tn, $IW)) {
$new .= $ts;
$iw = true;
} elseif ($tn == T_CONSTANT_ENCAPSED_STRING || $tn == T_ENCAPSED_AND_WHITESPACE) {
if ($ts[0] == '"') {
$ts = addcslashes($ts, "\n\t\r");
}
$new .= $ts;
$iw = true;
} elseif ($tn == T_WHITESPACE) {
$nt = @$tokens[$i + 1];
if (!$iw && (!is_string($nt) || $nt == '$') && !in_array($nt[0], $IW)) {
$new .= " ";
}
$iw = false;
} elseif ($tn == T_START_HEREDOC) {
$new .= "<<<S\n";
$iw = false;
$ih = true; // in HEREDOC
} elseif ($tn == T_END_HEREDOC) {
$new .= "S;";
$iw = true;
$ih = false; // in HEREDOC
for ($j = $i + 1; $j < $c; $j++) {
if (is_string($tokens[$j]) && $tokens[$j] == ";") {
$i = $j;
break;
} else if ($tokens[$j][0] == T_CLOSE_TAG) {
break;
}
}
} elseif ($tn == T_COMMENT || $tn == T_DOC_COMMENT) {
$iw = true;
} else {
/*
* Axel: DISABLE lowercase - it has bad impact on constants
*
if (!$ih) {
$ts = strtolower($ts);
}
*
*/
$new .= $ts;
$iw = false;
}
}
$ls = "";
} else {
if (($token != ";" && $token != ":") || $ls != $token) {
$new .= $token;
$ls = $token;
}
$iw = true;
}
}
return $new;
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment