--- a/AbstractOperatingSystem.st Fri Sep 02 10:18:11 2016 +0200
+++ b/AbstractOperatingSystem.st Fri Sep 02 12:32:18 2016 +0200
@@ -1788,6 +1788,75 @@
"Modified: / 10.11.1998 / 20:51:39 / cg"
!
+executeCommand:aCommandString inputFrom:anInStream outputTo:anOutStream errorTo:anErrStream environment:env showWindow:showWindow onError:aBlock
+ "execute the unix command specified by the argument, aCommandString.
+ If aCommandString is a String, the commandString is passed to a shell for execution
+ - see the description of 'sh -c' in your UNIX manual ('cmd.com' in your MSDOS manual).
+ If aCommandString is an Array, the first element is the command to be executed,
+ and the other elements are the arguments to the command. No shell is invoked in this case.
+ Return true if successful, the value from aBlock if not.
+ If not successfull, aBlock is called with an OsProcessStatus
+ (containing the exit status) as argument."
+
+ ^ self
+ executeCommand:aCommandString
+ inputFrom:anInStream
+ outputTo:anOutStream
+ errorTo:anErrStream
+ auxFrom:nil
+ environment:env
+ inDirectory:nil
+ lineWise:false
+ showWindow:showWindow
+ onError:aBlock
+
+ "
+ OperatingSystem
+ executeCommand:'dir'
+ inputFrom:nil
+ outputTo:nil
+ errorTo:nil
+ onError:[:status | Transcript flash]
+
+ OperatingSystem
+ executeCommand:'foo'
+ inputFrom:nil
+ outputTo:nil
+ errorTo:nil
+ onError:[:status | Transcript flash]
+ "
+ "
+ |outStr errStr|
+
+ outStr := '' writeStream.
+ errStr := '' writeStream.
+ OperatingSystem
+ executeCommand:'ls'
+ inputFrom:nil
+ outputTo:outStr
+ errorTo:errStr
+ onError:[:status | Transcript flash].
+ Transcript show:'out:'; showCR:outStr contents.
+ Transcript show:'err:'; showCR:errStr contents.
+ "
+ "
+ |outStr errStr|
+
+ outStr := '' writeStream.
+ errStr := '' writeStream.
+ OperatingSystem
+ executeCommand:'ls /fooBar'
+ inputFrom:nil
+ outputTo:outStr
+ errorTo:errStr
+ onError:[:status | Transcript flash].
+ Transcript show:'out:'; showCR:outStr contents.
+ Transcript show:'err:'; showCR:errStr contents.
+ "
+
+ "Modified: / 10.11.1998 / 20:51:39 / cg"
+!
+
executeCommand:aCommandString inputFrom:inputStreamOrNil outputTo:outStreamOrNil errorTo:errStreamOrNil inDirectory:aDirectory
"much like #executeCommand:, but changes the current directory
for the command. Since this is OS specific, use this instead of
@@ -1983,6 +2052,75 @@
"Modified: / 10.11.1998 / 20:51:39 / cg"
!
+executeCommand:aCommandString inputFrom:anInStream outputTo:anOutStream errorTo:anErrStream showWindow:showWindow onError:aBlock
+ "execute the unix command specified by the argument, aCommandString.
+ If aCommandString is a String, the commandString is passed to a shell for execution
+ - see the description of 'sh -c' in your UNIX manual ('cmd.com' in your MSDOS manual).
+ If aCommandString is an Array, the first element is the command to be executed,
+ and the other elements are the arguments to the command. No shell is invoked in this case.
+ Return true if successful, the value from aBlock if not.
+ If not successfull, aBlock is called with an OsProcessStatus
+ (containing the exit status) as argument."
+
+ ^ self
+ executeCommand:aCommandString
+ inputFrom:anInStream
+ outputTo:anOutStream
+ errorTo:anErrStream
+ auxFrom:nil
+ environment:nil
+ inDirectory:nil
+ lineWise:false
+ showWindow:showWindow
+ onError:aBlock
+
+ "
+ OperatingSystem
+ executeCommand:'dir'
+ inputFrom:nil
+ outputTo:nil
+ errorTo:nil
+ onError:[:status | Transcript flash]
+
+ OperatingSystem
+ executeCommand:'foo'
+ inputFrom:nil
+ outputTo:nil
+ errorTo:nil
+ onError:[:status | Transcript flash]
+ "
+ "
+ |outStr errStr|
+
+ outStr := '' writeStream.
+ errStr := '' writeStream.
+ OperatingSystem
+ executeCommand:'ls'
+ inputFrom:nil
+ outputTo:outStr
+ errorTo:errStr
+ onError:[:status | Transcript flash].
+ Transcript show:'out:'; showCR:outStr contents.
+ Transcript show:'err:'; showCR:errStr contents.
+ "
+ "
+ |outStr errStr|
+
+ outStr := '' writeStream.
+ errStr := '' writeStream.
+ OperatingSystem
+ executeCommand:'ls /fooBar'
+ inputFrom:nil
+ outputTo:outStr
+ errorTo:errStr
+ onError:[:status | Transcript flash].
+ Transcript show:'out:'; showCR:outStr contents.
+ Transcript show:'err:'; showCR:errStr contents.
+ "
+
+ "Modified: / 10.11.1998 / 20:51:39 / cg"
+!
+
executeCommand:aCommandString onError:aBlock
"execute the unix command specified by the argument, aCommandString.
If aCommandString is a String, the commandString is passed to a shell for execution