From 9ba4cb69331386dfde9bac69dc2d5b22401face3 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Wed, 12 Dec 2018 16:56:02 -0800 Subject: collapse boilerplate folder structure within src/ folders (#505) * collapse boilerplate folder structure within src/ folders * . --- .../backgroundwrapper/src/BackgroundWrapper.java | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 scalalib/backgroundwrapper/src/BackgroundWrapper.java (limited to 'scalalib/backgroundwrapper/src/BackgroundWrapper.java') diff --git a/scalalib/backgroundwrapper/src/BackgroundWrapper.java b/scalalib/backgroundwrapper/src/BackgroundWrapper.java new file mode 100644 index 00000000..02ee23eb --- /dev/null +++ b/scalalib/backgroundwrapper/src/BackgroundWrapper.java @@ -0,0 +1,40 @@ +package mill.scalalib.backgroundwrapper; + +public class BackgroundWrapper { + public static void main(String[] args) throws Exception{ + String watched = args[0]; + String tombstone = args[1]; + String expected = args[2]; + Thread watcher = new Thread(new Runnable() { + @Override + public void run() { + while (true) { + try{ + Thread.sleep(50); + String token = new String( + java.nio.file.Files.readAllBytes(java.nio.file.Paths.get(watched)) + ); + if (!token.equals(expected)) { + new java.io.File(tombstone).createNewFile(); + System.exit(0); + } + }catch(Exception e){ + try { + new java.io.File(tombstone).createNewFile(); + }catch(Exception e2){} + System.exit(0); + } + + } + } + }); + watcher.setDaemon(true); + watcher.start(); + String realMain = args[3]; + String[] realArgs = new String[args.length - 4]; + for(int i = 0; i < args.length-4; i++){ + realArgs[i] = args[i+4]; + } + Class.forName(realMain).getMethod("main", String[].class).invoke(null, (Object)realArgs); + } +} -- cgit v1.2.3