diff options
| author | Mike Buland <eichlan@xagasoft.com> | 2012-11-08 22:58:28 +0000 |
|---|---|---|
| committer | Mike Buland <eichlan@xagasoft.com> | 2012-11-08 22:58:28 +0000 |
| commit | 52be1ef0d126f09ba943c7afcf367e7d9347f2fd (patch) | |
| tree | fd4b0dd148751c3c6c1b95296c3b82cb86051b83 /src/functionexecute.cpp | |
| parent | 795d0737fed40d88a7801b451b7750ba90802345 (diff) | |
| download | build-52be1ef0d126f09ba943c7afcf367e7d9347f2fd.tar.gz build-52be1ef0d126f09ba943c7afcf367e7d9347f2fd.tar.bz2 build-52be1ef0d126f09ba943c7afcf367e7d9347f2fd.tar.xz build-52be1ef0d126f09ba943c7afcf367e7d9347f2fd.zip | |
tabconv: it's all spaces now.
Diffstat (limited to '')
| -rw-r--r-- | src/functionexecute.cpp | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/src/functionexecute.cpp b/src/functionexecute.cpp index 070ca53..cad65fa 100644 --- a/src/functionexecute.cpp +++ b/src/functionexecute.cpp | |||
| @@ -8,7 +8,7 @@ using namespace Bu; | |||
| 8 | 8 | ||
| 9 | #include <bu/plugger.h> | 9 | #include <bu/plugger.h> |
| 10 | PluginInterface3( pluginFunctionExecute, execute, FunctionExecute, Function, | 10 | PluginInterface3( pluginFunctionExecute, execute, FunctionExecute, Function, |
| 11 | "Mike Buland", 0, 1 ); | 11 | "Mike Buland", 0, 1 ); |
| 12 | 12 | ||
| 13 | FunctionExecute::FunctionExecute() | 13 | FunctionExecute::FunctionExecute() |
| 14 | { | 14 | { |
| @@ -20,54 +20,54 @@ FunctionExecute::~FunctionExecute() | |||
| 20 | 20 | ||
| 21 | Bu::String FunctionExecute::getName() const | 21 | Bu::String FunctionExecute::getName() const |
| 22 | { | 22 | { |
| 23 | return "execute"; | 23 | return "execute"; |
| 24 | } | 24 | } |
| 25 | 25 | ||
| 26 | Variable FunctionExecute::call( Variable &/*input*/, VarList lParams ) | 26 | Variable FunctionExecute::call( Variable &/*input*/, VarList lParams ) |
| 27 | { | 27 | { |
| 28 | // TODO This is lame, really lame, we need to exec on our own and process | 28 | // TODO This is lame, really lame, we need to exec on our own and process |
| 29 | // output appropriately. | 29 | // output appropriately. |
| 30 | pContext->getView()->cmdStarted( lParams.first().getString() ); | 30 | pContext->getView()->cmdStarted( lParams.first().getString() ); |
| 31 | Process pCmd( Process::Both, "/bin/bash", "/bin/bash", "-c", | 31 | Process pCmd( Process::Both, "/bin/bash", "/bin/bash", "-c", |
| 32 | lParams.first().getString().getStr(), NULL ); | 32 | lParams.first().getString().getStr(), NULL ); |
| 33 | String sStdOut, sStdErr; | 33 | String sStdOut, sStdErr; |
| 34 | do | 34 | do |
| 35 | { | 35 | { |
| 36 | char buf[4096]; | 36 | char buf[4096]; |
| 37 | bool out, err; | 37 | bool out, err; |
| 38 | pCmd.select( out, err ); | 38 | pCmd.select( out, err ); |
| 39 | if( err ) | 39 | if( err ) |
| 40 | { | 40 | { |
| 41 | int iRead = pCmd.readErr( buf, 4096 ); | 41 | int iRead = pCmd.readErr( buf, 4096 ); |
| 42 | sStdErr.append( buf, iRead ); | 42 | sStdErr.append( buf, iRead ); |
| 43 | //sio << "Read " << iRead << " bytes of stderr." << sio.nl; | 43 | //sio << "Read " << iRead << " bytes of stderr." << sio.nl; |
| 44 | } | 44 | } |
| 45 | if( out ) | 45 | if( out ) |
| 46 | { | 46 | { |
| 47 | int iRead = pCmd.read( buf, 4096 ); | 47 | int iRead = pCmd.read( buf, 4096 ); |
| 48 | sStdOut.append( buf, iRead ); | 48 | sStdOut.append( buf, iRead ); |
| 49 | //sio << "Read " << iRead << " bytes of stdout." << sio.nl; | 49 | //sio << "Read " << iRead << " bytes of stdout." << sio.nl; |
| 50 | } | 50 | } |
| 51 | } | 51 | } |
| 52 | while( pCmd.isRunning() ); | 52 | while( pCmd.isRunning() ); |
| 53 | 53 | ||
| 54 | pContext->getView()->cmdFinished( | 54 | pContext->getView()->cmdFinished( |
| 55 | sStdOut, sStdErr, pCmd.childExitStatus() | 55 | sStdOut, sStdErr, pCmd.childExitStatus() |
| 56 | ); | 56 | ); |
| 57 | if( pCmd.childExited() ) | 57 | if( pCmd.childExited() ) |
| 58 | { | 58 | { |
| 59 | if( pCmd.childExitStatus() != 0 ) | 59 | if( pCmd.childExitStatus() != 0 ) |
| 60 | { | 60 | { |
| 61 | throw Bu::ExceptionBase("Command exited with errorcode %d.", pCmd.childExitStatus() ); | 61 | throw Bu::ExceptionBase("Command exited with errorcode %d.", pCmd.childExitStatus() ); |
| 62 | } | 62 | } |
| 63 | } | 63 | } |
| 64 | else | 64 | else |
| 65 | { | 65 | { |
| 66 | pContext->getView()->cmdFinished( | 66 | pContext->getView()->cmdFinished( |
| 67 | sStdOut, sStdErr, pCmd.childExitStatus() | 67 | sStdOut, sStdErr, pCmd.childExitStatus() |
| 68 | ); | 68 | ); |
| 69 | throw Bu::ExceptionBase("Command Failed"); | 69 | throw Bu::ExceptionBase("Command Failed"); |
| 70 | } | 70 | } |
| 71 | return Variable( pCmd.childExitStatus() ); | 71 | return Variable( pCmd.childExitStatus() ); |
| 72 | } | 72 | } |
| 73 | 73 | ||
