52 global $bearsamppTools;
54 $fontName =
'CaskaydiaMono NF';
58 $titles[] = $bearsamppTools->getPowerShell()->getTabTitleDefault();
59 $titles[] = $bearsamppTools->getPowerShell()->getTabTitlePowershell();
60 $titles[] =
'Console';
61 $titles[] =
'Bearsampp Powershell Console';
63 try { $titles[] = $bearsamppTools->getPowerShell()->getTabTitlePear(); }
catch (Exception $e) {}
64 try { $titles[] = $bearsamppTools->getPowerShell()->getTabTitleMysql(); }
catch (Exception $e) {}
65 try { $titles[] = $bearsamppTools->getPowerShell()->getTabTitleMariadb(); }
catch (Exception $e) {}
66 try { $titles[] = $bearsamppTools->getPowerShell()->getTabTitlePostgresql(); }
catch (Exception $e) {}
67 try { $titles[] = $bearsamppTools->getPowerShell()->getTabTitleGit(); }
catch (Exception $e) {}
68 try { $titles[] = $bearsamppTools->getPowerShell()->getTabTitleNodejs(); }
catch (Exception $e) {}
69 try { $titles[] = $bearsamppTools->getPowerShell()->getTabTitleComposer(); }
catch (Exception $e) {}
70 try { $titles[] = $bearsamppTools->getPowerShell()->getTabTitlePython(); }
catch (Exception $e) {}
71 try { $titles[] = $bearsamppTools->getPowerShell()->getTabTitleRuby(); }
catch (Exception $e) {}
72 try { $titles[] = $bearsamppTools->getPowerShell()->getTabTitlePerl(); }
catch (Exception $e) {}
73 try { $titles[] = $bearsamppTools->getPowerShell()->getTabTitleGhostscript(); }
catch (Exception $e) {}
74 try { $titles[] = $bearsamppTools->getPowerShell()->getTabTitleNgrok(); }
catch (Exception $e) {}
77 $shortTitles = [
"Composer",
"Ghostscript",
"ngrok",
"PEAR",
"Perl",
"Ruby",
"Git",
"Python",
"MariaDB",
"MySQL",
"PostgreSQL",
"Node.js"];
78 $allTitles = array_unique(array_merge($titles, $shortTitles));
83 $regContent =
"Windows Registry Editor Version 5.00\r\n";
86 $regContent .=
"\r\n[HKEY_CURRENT_USER\\Console]\r\n";
87 $regContent .=
'"FaceName"="' . $fontName .
'"' .
"\r\n";
88 $regContent .=
'"FontFamily"=dword:00000036' .
"\r\n";
89 $regContent .=
'"CodePage"=dword:0000fde9' .
"\r\n";
92 foreach ($allTitles as $title) {
93 if (empty($title))
continue;
94 $regContent .=
"\r\n[HKEY_CURRENT_USER\\Console\\" . $title .
"]\r\n";
95 $regContent .=
'"FaceName"="' . $fontName .
'"' .
"\r\n";
96 $regContent .=
'"FontFamily"=dword:00000036' .
"\r\n";
97 $regContent .=
'"FontSize"=dword:00100000' .
"\r\n";
98 $regContent .=
'"FontWeight"=dword:00000190' .
"\r\n";
99 $regContent .=
'"CodePage"=dword:0000fde9' .
"\r\n";
100 $regContent .=
'"ScreenBufferSize"=dword:0bb8006e' .
"\r\n";
101 $regContent .=
'"WindowSize"=dword:001e006e' .
"\r\n";
105 $regContent .=
"\r\n[HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Console\\TrueTypeFont]\r\n";
106 $regContent .=
'"0"="' . $fontName .
'"' .
"\r\n";
107 $regContent .=
'"00"="' . $fontName .
'"' .
"\r\n";
108 $regContent .=
'"000"="' . $fontName .
'"' .
"\r\n";
111 $tmpReg = sys_get_temp_dir() . DIRECTORY_SEPARATOR .
'bearsampp_console_font.reg';
113 $bytes = file_put_contents($tmpReg, $regContent);
114 if ($bytes ===
false || $bytes === 0) {
118 $cmd =
'reg import "' . $tmpReg .
'"';
121 exec($cmd, $output, $exitCode);
125 if ($exitCode !== 0) {
225 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' .
$bearsamppBins->getPhp()->getPearExe() .
'"');
227 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' .
$bearsamppBins->getPhp()->getPearExe() .
' not found');
231 $bearsamppTools->getPowerShell()->getTabTitlePear(),
253 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' .
$bearsamppBins->getMysql()->getCliExe() .
'" -u' .
257 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' .
$bearsamppBins->getMysql()->getCliExe() .
' not found');
261 $bearsamppTools->getPowerShell()->getTabTitleMysql(),
283 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' .
$bearsamppBins->getMariadb()->getCliExe() .
'" -u' .
287 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' .
$bearsamppBins->getMariadb()->getCliExe() .
' not found');
291 $bearsamppTools->getPowerShell()->getTabTitleMariadb(),
313 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' .
$bearsamppBins->getPostgresql()->getCliExe() .
'"' .
319 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' .
$bearsamppBins->getPostgresql()->getCliExe() .
' not found');
323 $bearsamppTools->getPowerShell()->getTabTitlePostgresql(),
345 $shell = $bearsamppTools->getPowerShell()->getShell();
346 if (!file_exists($bearsamppTools->getGit()->getExe())) {
347 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getGit()->getExe() .
' not found');
351 $bearsamppTools->getPowerShell()->getTabTitleGit(),
374 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' .
$bearsamppBins->getNodejs()->getLaunch() .
'"');
376 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' .
$bearsamppBins->getNodejs()->getLaunch() .
' not found');
380 $bearsamppTools->getPowerShell()->getTabTitleNodejs(),
402 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $bearsamppTools->getComposer()->getExe() .
'"');
403 if (!file_exists($bearsamppTools->getComposer()->getExe())) {
404 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getComposer()->getExe() .
' not found');
408 $bearsamppTools->getPowerShell()->getTabTitleComposer(),
430 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $bearsamppTools->getPython()->getExe() .
'"');
431 if (!file_exists($bearsamppTools->getPython()->getExe())) {
432 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getPython()->getExe() .
' not found');
436 $bearsamppTools->getPowerShell()->getTabTitlePython(),
459 if (!file_exists($bearsamppTools->getRuby()->getExe())) {
460 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getRuby()->getExe() .
' not found');
463 $rubyDir = dirname($bearsamppTools->getRuby()->getExe());
464 $irbExe = $rubyDir .
'/irb.bat';
467 if (file_exists($irbExe)) {
468 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $irbExe .
'"');
469 } elseif (file_exists($rubyDir .
'/irb.cmd')) {
470 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $rubyDir .
'/irb.cmd' .
'"');
471 } elseif (file_exists($rubyDir .
'/irb')) {
472 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $rubyDir .
'/irb' .
'"');
475 $shell = $bearsamppTools->getPowerShell()->getShell();
480 $bearsamppTools->getPowerShell()->getTabTitleRuby(),
502 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $bearsamppTools->getPerl()->getExe() .
'"');
503 if (!file_exists($bearsamppTools->getPerl()->getExe())) {
504 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getPerl()->getExe() .
' not found');
508 $bearsamppTools->getPowerShell()->getTabTitlePerl(),
532 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $bearsamppTools->getGhostscript()->getExeConsole() .
'"');
533 if (!file_exists($bearsamppTools->getGhostscript()->getExeConsole())) {
534 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getGhostscript()->getExeConsole() .
' not found');
538 $bearsamppTools->getPowerShell()->getTabTitleGhostscript(),
562 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $bearsamppTools->getNgrok()->getExe() .
'"');
563 if (!file_exists($bearsamppTools->getNgrok()->getExe())) {
564 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getNgrok()->getExe() .
' not found');
568 $bearsamppTools->getPowerShell()->getTabTitleNgrok(),