예제 #1
0
 public static void unZipFolder(String directoryToZip) {
   try {
     UnZip.unZip(directoryToZip);
   } catch (Exception exp) {
     exp.printStackTrace();
   }
 }
예제 #2
0
  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.");
  }