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 $wsh =
new COM(
'WScript.Shell');
122 $exitCode = $wsh->Run($cmd, 0,
true);
123 }
catch (Throwable $e) {
125 exec($cmd, $output, $exitCode);
130 if ($exitCode !== 0) {
230 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' .
$bearsamppBins->getPhp()->getPearExe() .
'"');
232 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' .
$bearsamppBins->getPhp()->getPearExe() .
' not found');
236 $bearsamppTools->getPowerShell()->getTabTitlePear(),
258 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' .
$bearsamppBins->getMysql()->getCliExe() .
'" -u' .
262 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' .
$bearsamppBins->getMysql()->getCliExe() .
' not found');
266 $bearsamppTools->getPowerShell()->getTabTitleMysql(),
288 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' .
$bearsamppBins->getMariadb()->getCliExe() .
'" -u' .
292 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' .
$bearsamppBins->getMariadb()->getCliExe() .
' not found');
296 $bearsamppTools->getPowerShell()->getTabTitleMariadb(),
318 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' .
$bearsamppBins->getPostgresql()->getCliExe() .
'"' .
324 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' .
$bearsamppBins->getPostgresql()->getCliExe() .
' not found');
328 $bearsamppTools->getPowerShell()->getTabTitlePostgresql(),
350 $shell = $bearsamppTools->getPowerShell()->getShell();
351 if (!file_exists($bearsamppTools->getGit()->getExe())) {
352 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getGit()->getExe() .
' not found');
356 $bearsamppTools->getPowerShell()->getTabTitleGit(),
379 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' .
$bearsamppBins->getNodejs()->getLaunch() .
'"');
381 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' .
$bearsamppBins->getNodejs()->getLaunch() .
' not found');
385 $bearsamppTools->getPowerShell()->getTabTitleNodejs(),
407 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $bearsamppTools->getComposer()->getExe() .
'"');
408 if (!file_exists($bearsamppTools->getComposer()->getExe())) {
409 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getComposer()->getExe() .
' not found');
413 $bearsamppTools->getPowerShell()->getTabTitleComposer(),
435 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $bearsamppTools->getPython()->getExe() .
'"');
436 if (!file_exists($bearsamppTools->getPython()->getExe())) {
437 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getPython()->getExe() .
' not found');
441 $bearsamppTools->getPowerShell()->getTabTitlePython(),
464 if (!file_exists($bearsamppTools->getRuby()->getExe())) {
465 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getRuby()->getExe() .
' not found');
468 $rubyDir = dirname($bearsamppTools->getRuby()->getExe());
469 $irbExe = $rubyDir .
'/irb.bat';
472 if (file_exists($irbExe)) {
473 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $irbExe .
'"');
474 } elseif (file_exists($rubyDir .
'/irb.cmd')) {
475 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $rubyDir .
'/irb.cmd' .
'"');
476 } elseif (file_exists($rubyDir .
'/irb')) {
477 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $rubyDir .
'/irb' .
'"');
480 $shell = $bearsamppTools->getPowerShell()->getShell();
485 $bearsamppTools->getPowerShell()->getTabTitleRuby(),
507 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $bearsamppTools->getPerl()->getExe() .
'"');
508 if (!file_exists($bearsamppTools->getPerl()->getExe())) {
509 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getPerl()->getExe() .
' not found');
513 $bearsamppTools->getPowerShell()->getTabTitlePerl(),
537 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $bearsamppTools->getGhostscript()->getExeConsole() .
'"');
538 if (!file_exists($bearsamppTools->getGhostscript()->getExeConsole())) {
539 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getGhostscript()->getExeConsole() .
' not found');
543 $bearsamppTools->getPowerShell()->getTabTitleGhostscript(),
567 $shell = $bearsamppTools->getPowerShell()->getShell(
'"' . $bearsamppTools->getNgrok()->getExe() .
'"');
568 if (!file_exists($bearsamppTools->getNgrok()->getExe())) {
569 $shell = $bearsamppTools->getPowerShell()->getShell(
'echo ' . $bearsamppTools->getNgrok()->getExe() .
' not found');
573 $bearsamppTools->getPowerShell()->getTabTitleNgrok(),