function run( program, args )
{
let P = new ExternalProcess( program, args );
if ( P.waitForStarted() )
{
processEvents();
let n = 0;
for ( ; n < 10 && !P.waitForFinished( 250 ); ++n )
{
console.write( "<end>\b" + "-/|\\".charAt( n%4 ) );
processEvents();
}
if ( n > 0 )
console.writeln( "<end>\b" );
}
if ( P.exitStatus == ProcessExitStatus_Crash || P.exitCode != 0 )
{
let e = P.stderr;
throw new Error( "Process failed: " + program + ((e.length > 0) ? "\n" + e : "") );
}
}
run( "unzip", ["/path/to/foo.zip", "-d", "/path/to/foo-dir"] );
Array searchDirectory( String dirPath[, Boolean recursive=false] )
function run( program, args )
{
let P = new ExternalProcess( program, args );
if ( P.waitForStarted() )
{
processEvents();
let n = 0;
for ( ; n < 10 && !P.waitForFinished( 250 ); ++n )
{
console.write( "<end>\b" + "-/|\\".charAt( n%4 ) );
processEvents();
}
if ( n > 0 )
console.writeln( "<end>\b" );
}
if ( P.exitStatus == ProcessExitStatus_Crash || P.exitCode != 0 )
{
let e = P.stderr;
throw new Error( "Process failed: " + program + ((e.length > 0) ? "\n" + e : "") );
}
P.terminate();
P.closeStandardError();
P.closeStandardInput();
P.closeStandardOutput();
}