HackStudio: set sane $PATH early to include /usr/local/bin

Launching from the terminal inherits $PATH which includes
/usr/local/bin, but launching from the system menubar doesn't, so
HackStudio wasn't finding make installed from ports.
This commit is contained in:
joshua stein 2020-01-15 20:42:54 -06:00 committed by Andreas Kling
parent 5c25983844
commit d063a4ccf3
2 changed files with 8 additions and 1 deletions

View file

@ -105,7 +105,6 @@ void TerminalWrapper::run_command(const String& command)
}
setenv("TERM", "xterm", true);
setenv("PATH", "/bin:/usr/bin:/usr/local/bin", true);
auto parts = command.split(' ');
ASSERT(!parts.is_empty());

View file

@ -10,6 +10,7 @@
#include "TerminalWrapper.h"
#include "WidgetTool.h"
#include "WidgetTreeModel.h"
#include <AK/StringBuilder.h>
#include <LibCore/CFile.h>
#include <LibGUI/GAboutDialog.h>
#include <LibGUI/GAction.h>
@ -121,6 +122,13 @@ int main(int argc, char** argv)
widget->set_layout(make<GBoxLayout>(Orientation::Vertical));
widget->layout()->set_spacing(0);
StringBuilder path;
path.append(getenv("PATH"));
if (path.length())
path.append(":");
path.append("/bin:/usr/bin:/usr/local/bin");
setenv("PATH", path.to_string().characters(), true);
if (!make_is_available())
GMessageBox::show("The 'make' command is not available. You probably want to install the binutils, gcc, and make ports from the root of the Serenity repository.", "Error", GMessageBox::Type::Error, GMessageBox::InputType::OK, g_window);