1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
#include "clConsoleOSXTerminal.h"
#include "file_logger.h"
#include "fileutils.h"
clConsoleOSXTerminal::clConsoleOSXTerminal() { SetTerminalApp("Terminal"); }
clConsoleOSXTerminal::~clConsoleOSXTerminal() {}
bool clConsoleOSXTerminal::Start()
{
wxString commandToExecute = PrepareCommand();
int rc = system(commandToExecute.mb_str(wxConvUTF8).data());
wxUnusedVar(rc);
return true;
}
bool clConsoleOSXTerminal::StartForDebugger()
{
SetRealPts("");
SetTty("");
SetPid(wxNOT_FOUND);
FileUtils::OSXOpenDebuggerTerminalAndGetTTY(GetWorkingDirectory(), GetTerminalApp(), m_tty, m_pid);
SetRealPts(m_tty);
return true;
}
wxString clConsoleOSXTerminal::PrepareCommand()
{
wxString commandToExecute;
// osascript -e 'tell app "Terminal" to do script "echo hello"'
wxFileName scriptPath = PrepareExecScript();
if(IsTerminalNeeded()) {
commandToExecute << "open -n -a " << GetTerminalApp();
}
if(!GetCommand().IsEmpty()) {
commandToExecute << " " << scriptPath.GetFullPath();
}
clDEBUG() << commandToExecute;
return commandToExecute;
}
|