# HG changeset patch # User Jaroslav Tulach # Date 1356077932 -3600 # Node ID 98eb1066dab15ba909152dc5fcea00e1f3692fac # Parent 86f3ea771e248a5213d88a4e1b8b7cbae93197a4 Print out the output of launched brwsr diff -r 86f3ea771e24 -r 98eb1066dab1 launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java --- a/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Thu Dec 20 21:54:33 2012 +0100 +++ b/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Fri Dec 21 09:18:52 2012 +0100 @@ -27,6 +27,7 @@ import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; +import java.util.Arrays; import java.util.Enumeration; import java.util.LinkedHashSet; import java.util.List; @@ -234,15 +235,34 @@ int port = listener.getPort(); URI uri = new URI("http://localhost:" + port + page); + System.err.println("Showing " + uri); try { Desktop.getDesktop().browse(uri); } catch (UnsupportedOperationException ex) { String[] cmd = { "xdg-open", uri.toString() }; - Runtime.getRuntime().exec(cmd).waitFor(); + System.err.println("Launching " + Arrays.toString(cmd)); + final Process process = Runtime.getRuntime().exec(cmd); + InputStream stdout = process.getInputStream(); + InputStream stderr = process.getErrorStream(); + int res = process.waitFor(); + System.err.println("Exit code: " + res); + drain("StdOut", stdout); + drain("StdErr", stderr); } - System.err.println("Showing " + uri); + } + + private static void drain(String name, InputStream is) throws IOException { + int av = is.available(); + if (av > 0) { + System.err.println("v== " + name + " ==v"); + while (av-- > 0) { + System.err.write(is.read()); + } + System.err.println(); + System.err.println("^== " + name + " ==^"); + } } private class Res implements Bck2Brwsr.Resources {