RunExe.hx 905 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. class RunExe {
  2. static function main() {
  3. /*
  4. cpp: cpp/Test-debug
  5. cs : cs/bin/cs
  6. cs_unsafe : cs_unsafe/bin/cs_unsafe
  7. */
  8. var rel_path = "";
  9. if (neko.Web.isModNeko) {
  10. //mod neko: use get string
  11. rel_path = neko.Web.getParamsString();
  12. //display similar to other tests
  13. neko.Web.setHeader("Content-Type","text/plain");
  14. } else {
  15. //command line arg
  16. var args = Sys.args();
  17. if (args.length > 0) rel_path = args[0];
  18. }
  19. if (rel_path == "") {
  20. neko.Lib.print("error:no path to executable specified");
  21. return;
  22. }
  23. var p = new sys.io.Process(neko.Web.getCwd() + rel_path, []);
  24. try {
  25. while ( true ) {
  26. var c = p.stdout.readByte();
  27. neko.Lib.print(StringTools.htmlEscape(String.fromCharCode(c)));
  28. }
  29. } catch ( e : haxe.io.Eof ) {
  30. }
  31. neko.Lib.print(StringTools.htmlEscape(p.stderr.readAll().toString()));
  32. }
  33. }