56 global $bearsamppTools;
58 $fontName =
'CaskaydiaMono NF';
62 $titles[] = $bearsamppTools->getPowerShell()->getTabTitleDefault();
63 $titles[] = $bearsamppTools->getPowerShell()->getTabTitlePowershell();
64 $titles[] =
'Console';
65 $titles[] =
'Bearsampp Powershell Console';
68 $titles[] = $bearsamppTools->getPowerShell()->getTabTitlePear();
69 }
catch (Exception $e) {
72 $titles[] = $bearsamppTools->getPowerShell()->getTabTitleMysql();
73 }
catch (Exception $e) {
76 $titles[] = $bearsamppTools->getPowerShell()->getTabTitleMariadb();
77 }
catch (Exception $e) {
80 $titles[] = $bearsamppTools->getPowerShell()->getTabTitlePostgresql();
81 }
catch (Exception $e) {
84 $titles[] = $bearsamppTools->getPowerShell()->getTabTitleGit();
85 }
catch (Exception $e) {
88 $titles[] = $bearsamppTools->getPowerShell()->getTabTitleNodejs();
89 }
catch (Exception $e) {
92 $titles[] = $bearsamppTools->getPowerShell()->getTabTitleComposer();
93 }
catch (Exception $e) {
96 $titles[] = $bearsamppTools->getPowerShell()->getTabTitlePython();
97 }
catch (Exception $e) {
100 $titles[] = $bearsamppTools->getPowerShell()->getTabTitleRuby();
101 }
catch (Exception $e) {
104 $titles[] = $bearsamppTools->getPowerShell()->getTabTitlePerl();
105 }
catch (Exception $e) {
108 $titles[] = $bearsamppTools->getPowerShell()->getTabTitleGhostscript();
109 }
catch (Exception $e) {
112 $titles[] = $bearsamppTools->getPowerShell()->getTabTitleNgrok();
113 }
catch (Exception $e) {
117 $shortTitles = [
"Composer",
"Ghostscript",
"ngrok",
"PEAR",
"Perl",
"Ruby",
"Git",
"Python",
"MariaDB",
"MySQL",
"PostgreSQL",
"Node.js"];
118 $allTitles = array_unique(array_merge($titles, $shortTitles));
123 $regContent =
"Windows Registry Editor Version 5.00\r\n";
126 $regContent .=
"\r\n[HKEY_CURRENT_USER\\Console]\r\n";
127 $regContent .=
'"FaceName"="' . $fontName .
'"' .
"\r\n";
128 $regContent .=
'"FontFamily"=dword:00000036' .
"\r\n";
129 $regContent .=
'"CodePage"=dword:0000fde9' .
"\r\n";
132 foreach ($allTitles as $title) {
136 $regContent .=
"\r\n[HKEY_CURRENT_USER\\Console\\" . $title .
"]\r\n";
137 $regContent .=
'"FaceName"="' . $fontName .
'"' .
"\r\n";
138 $regContent .=
'"FontFamily"=dword:00000036' .
"\r\n";
139 $regContent .=
'"FontSize"=dword:00100000' .
"\r\n";
140 $regContent .=
'"FontWeight"=dword:00000190' .
"\r\n";
141 $regContent .=
'"CodePage"=dword:0000fde9' .
"\r\n";
142 $regContent .=
'"ScreenBufferSize"=dword:0bb8006e' .
"\r\n";
143 $regContent .=
'"WindowSize"=dword:001e006e' .
"\r\n";
147 $regContent .=
"\r\n[HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Console\\TrueTypeFont]\r\n";
148 $regContent .=
'"0"="' . $fontName .
'"' .
"\r\n";
149 $regContent .=
'"00"="' . $fontName .
'"' .
"\r\n";
150 $regContent .=
'"000"="' . $fontName .
'"' .
"\r\n";
153 $tmpReg = sys_get_temp_dir() . DIRECTORY_SEPARATOR .
'bearsampp_console_font.reg';
155 $bytes = file_put_contents($tmpReg, $regContent);
156 if ($bytes ===
false || $bytes === 0) {
160 $cmd =
'reg import "' . $tmpReg .
'"';
163 $wsh =
new COM(
'WScript.Shell');
164 $exitCode = $wsh->Run($cmd, 0,
true);
165 }
catch (Throwable $e) {
167 exec($cmd, $output, $exitCode);
172 if ($exitCode !== 0) {
272 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' .
$bearsamppBins->getPhp()->getPearExe() .
'"');
274 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' .
$bearsamppBins->getPhp()->getPearExe() .
' not found');
278 $bearsamppTools->getPowerShell()->getTabTitlePear(),
300 $shell = $bearsamppTools->getPowerShell()->getShell(
301 '"' .
$bearsamppBins->getMysql()->getCliExe() .
'" -u' .
306 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' .
$bearsamppBins->getMysql()->getCliExe() .
' not found');
310 $bearsamppTools->getPowerShell()->getTabTitleMysql(),
332 $shell = $bearsamppTools->getPowerShell()->getShell(
333 '"' .
$bearsamppBins->getMariadb()->getCliExe() .
'" -u' .
338 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' .
$bearsamppBins->getMariadb()->getCliExe() .
' not found');
342 $bearsamppTools->getPowerShell()->getTabTitleMariadb(),
364 $shell = $bearsamppTools->getPowerShell()->getShell(
365 '"' .
$bearsamppBins->getPostgresql()->getCliExe() .
'"' .
372 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' .
$bearsamppBins->getPostgresql()->getCliExe() .
' not found');
376 $bearsamppTools->getPowerShell()->getTabTitlePostgresql(),
398 $shell = $bearsamppTools->getPowerShell()->getShell();
399 if (!file_exists($bearsamppTools->getGit()->getExe())) {
400 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getGit()->getExe() .
' not found');
404 $bearsamppTools->getPowerShell()->getTabTitleGit(),
427 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' .
$bearsamppBins->getNodejs()->getLaunch() .
'"');
429 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' .
$bearsamppBins->getNodejs()->getLaunch() .
' not found');
433 $bearsamppTools->getPowerShell()->getTabTitleNodejs(),
455 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $bearsamppTools->getComposer()->getExe() .
'"');
456 if (!file_exists($bearsamppTools->getComposer()->getExe())) {
457 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getComposer()->getExe() .
' not found');
461 $bearsamppTools->getPowerShell()->getTabTitleComposer(),
483 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $bearsamppTools->getPython()->getExe() .
'"');
484 if (!file_exists($bearsamppTools->getPython()->getExe())) {
485 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getPython()->getExe() .
' not found');
489 $bearsamppTools->getPowerShell()->getTabTitlePython(),
512 if (!file_exists($bearsamppTools->getRuby()->getExe())) {
513 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getRuby()->getExe() .
' not found');
516 $rubyDir = dirname($bearsamppTools->getRuby()->getExe());
517 $irbExe = $rubyDir .
'/irb.bat';
520 if (file_exists($irbExe)) {
521 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $irbExe .
'"');
522 } elseif (file_exists($rubyDir .
'/irb.cmd')) {
523 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $rubyDir .
'/irb.cmd' .
'"');
524 } elseif (file_exists($rubyDir .
'/irb')) {
525 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $rubyDir .
'/irb' .
'"');
528 $shell = $bearsamppTools->getPowerShell()->getShell();
533 $bearsamppTools->getPowerShell()->getTabTitleRuby(),
555 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $bearsamppTools->getPerl()->getExe() .
'"');
556 if (!file_exists($bearsamppTools->getPerl()->getExe())) {
557 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getPerl()->getExe() .
' not found');
561 $bearsamppTools->getPowerShell()->getTabTitlePerl(),
585 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $bearsamppTools->getGhostscript()->getExeConsole() .
'"');
586 if (!file_exists($bearsamppTools->getGhostscript()->getExeConsole())) {
587 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getGhostscript()->getExeConsole() .
' not found');
591 $bearsamppTools->getPowerShell()->getTabTitleGhostscript(),
615 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $bearsamppTools->getNgrok()->getExe() .
'"');
616 if (!file_exists($bearsamppTools->getNgrok()->getExe())) {
617 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getNgrok()->getExe() .
' not found');
621 $bearsamppTools->getPowerShell()->getTabTitleNgrok(),