no engine anymore
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#include "runner.h"
|
||||
#include "tier0/platform.h"
|
||||
#include "tier1/interface.h"
|
||||
#include "tier1/utlstring.h"
|
||||
#include "tier1/utlvector.h"
|
||||
#include "unistd.h"
|
||||
@@ -7,7 +8,20 @@
|
||||
#include "tier1/commandline.h"
|
||||
|
||||
CUtlVector<pid_t> g_processes;
|
||||
int IRunner::Run(CUtlString szName, CUtlVector<CUtlString>& args)
|
||||
|
||||
class CPOSIXRunner: public IRunner
|
||||
{
|
||||
public:
|
||||
virtual int Run( CUtlString szName, CUtlVector<CUtlString>& args ) override;
|
||||
virtual int Run( CUtlString szName, CUtlString szDirectory, CUtlVector<CUtlString>& args ) override;
|
||||
virtual int Run( CUtlString szName, CUtlString szDirectory, CUtlVector<CUtlString>& args, CUtlVector<CUtlString>& environment ) override;
|
||||
virtual int Wait( void ) override;
|
||||
};
|
||||
|
||||
EXPOSE_INTERFACE(CPOSIXRunner, IRunner, RUNNER_INTERFACE_NAME);
|
||||
IRunner *runner;
|
||||
|
||||
int CPOSIXRunner::Run(CUtlString szName, CUtlVector<CUtlString>& args)
|
||||
{
|
||||
pid_t pid = fork();
|
||||
if (pid < 0)
|
||||
@@ -17,15 +31,15 @@ int IRunner::Run(CUtlString szName, CUtlVector<CUtlString>& args)
|
||||
{
|
||||
CUtlVector<const char*> execargs;
|
||||
execargs.AppendTail(szName);
|
||||
if (ICommandLine::CheckParam("-fpcdebug"))
|
||||
if (CommandLine()->CheckParam("-fpcdebug"))
|
||||
V_printf("%s",szName.GetString());
|
||||
for (auto &arg: args)
|
||||
{
|
||||
execargs.AppendTail(arg);
|
||||
if (ICommandLine::CheckParam("-fpcdebug"))
|
||||
if (CommandLine()->CheckParam("-fpcdebug"))
|
||||
V_printf(" %s",arg.GetString());
|
||||
}
|
||||
if (ICommandLine::CheckParam("-fpcdebug"))
|
||||
if (CommandLine()->CheckParam("-fpcdebug"))
|
||||
V_printf("\n");
|
||||
execargs.AppendTail(0);
|
||||
if ( execvp(szName, (char *const*)execargs.GetData()) == -1 )
|
||||
@@ -38,7 +52,7 @@ int IRunner::Run(CUtlString szName, CUtlVector<CUtlString>& args)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int IRunner::Run(CUtlString szName, CUtlString szDirectory, CUtlVector<CUtlString>& args)
|
||||
int CPOSIXRunner::Run(CUtlString szName, CUtlString szDirectory, CUtlVector<CUtlString>& args)
|
||||
{
|
||||
pid_t pid = fork();
|
||||
if (pid < 0)
|
||||
@@ -48,10 +62,16 @@ int IRunner::Run(CUtlString szName, CUtlString szDirectory, CUtlVector<CUtlStrin
|
||||
{
|
||||
CUtlVector<const char*> execargs;
|
||||
execargs.AppendTail(szName);
|
||||
if (CommandLine()->CheckParam("-fpcdebug"))
|
||||
V_printf("%s",szName.GetString());
|
||||
for (auto &arg: args)
|
||||
{
|
||||
execargs.AppendTail(arg);
|
||||
if (CommandLine()->CheckParam("-fpcdebug"))
|
||||
V_printf(" %s",arg.GetString());
|
||||
}
|
||||
if (CommandLine()->CheckParam("-fpcdebug"))
|
||||
V_printf("\n");
|
||||
execargs.AppendTail(0);
|
||||
chdir(szDirectory.GetString());
|
||||
if ( execvp(szName, (char *const*)execargs.GetData()) == -1 )
|
||||
@@ -65,12 +85,12 @@ int IRunner::Run(CUtlString szName, CUtlString szDirectory, CUtlVector<CUtlStrin
|
||||
return 0;
|
||||
}
|
||||
|
||||
int IRunner::Run(CUtlString szName, CUtlString szDirectory, CUtlVector<CUtlString>& args, CUtlVector<CUtlString>& environment)
|
||||
int CPOSIXRunner::Run(CUtlString szName, CUtlString szDirectory, CUtlVector<CUtlString>& args, CUtlVector<CUtlString>& environment)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
int IRunner::Wait( void )
|
||||
int CPOSIXRunner::Wait( void )
|
||||
{
|
||||
for (auto &process: g_processes)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user