public static void unZipFolder(String directoryToZip) { try { UnZip.unZip(directoryToZip); } catch (Exception exp) { exp.printStackTrace(); } }
public static void action() throws IOException, InterruptedException { // Connect to remote site String response = fetchTask(); System.out.println("JSON: " + response.trim()); JSONObject json = JSONObject.fromObject(response); int code = json.getInt("code"); String desc = json.getString("desc"); if (code != 0) { System.out.println("Code: " + code + " Desc: " + desc); } JSONObject task = json.getJSONObject("task"); String jar = task.getString("jar"); String cmd = task.getString("cmd"); // Create temporary directory File dir = createTempDirectory(); System.out.println("Temporary directory: " + dir.getAbsolutePath()); // Download current version System.out.println("Downloading: " + jar); String fileName = download(jar, dir); System.out.println("Unzipping: " + fileName); UnZip.unzip(dir.getAbsolutePath() + File.separator + fileName, dir.getAbsolutePath()); System.out.println("Executing: "); System.out.println(cmd); long startTime = System.currentTimeMillis(); Runtime rt = Runtime.getRuntime(); Process pr = rt.exec(cmd, null, dir); StreamWrapper errorStream = StreamWrapper.createStreamWrapper(pr.getErrorStream()); StreamWrapper inputStream = StreamWrapper.createStreamWrapper(pr.getInputStream()); int errorCode = pr.waitFor(); System.out.println(errorCode); System.out.println(errorStream); if (!ECHO) { System.out.println(inputStream); } long duration = System.currentTimeMillis() - startTime; task.put("duration", duration); String result = inputStream.toString() + errorStream.toString(); task.put("result", result); System.out.println("Sending results"); String status = sendResults(task); System.out.println(status.trim()); System.out.println("Cleaning up..."); deleteDirectory(dir); System.out.println("Done."); }