diff --git a/cli/src/main/java/org/openjdk/skara/cli/GitSkara.java b/cli/src/main/java/org/openjdk/skara/cli/GitSkara.java index d3912525f..a37fb4c8b 100644 --- a/cli/src/main/java/org/openjdk/skara/cli/GitSkara.java +++ b/cli/src/main/java/org/openjdk/skara/cli/GitSkara.java @@ -80,23 +80,32 @@ private static void update(String[] args) throws IOException, InterruptedExcepti System.exit(1); } + var head = repo.get().head(); + System.out.print("Checking for updates ..."); repo.get().pull(); + var newHead = repo.get().head(); - var cmd = new ArrayList(); - if (System.getProperty("os.name").toLowerCase().startsWith("win")) { - cmd.add("gradlew.bat"); - } else { - cmd.addAll(List.of("sh", "gradlew")); - } + if (!head.equals(newHead)) { + System.out.println("updates downloaded"); + System.out.println("Rebuilding ..."); + var cmd = new ArrayList(); + if (System.getProperty("os.name").toLowerCase().startsWith("win")) { + cmd.add("gradlew.bat"); + } else { + cmd.addAll(List.of("sh", "gradlew")); + } - var pb = new ProcessBuilder(cmd); - pb.inheritIO(); - pb.directory(parent.toFile()); - var p = pb.start(); - var res = p.waitFor(); - if (res != 0) { - System.err.println("error: could not build Skara tooling"); - System.exit(1); + var pb = new ProcessBuilder(cmd); + pb.inheritIO(); + pb.directory(parent.toFile()); + var p = pb.start(); + var res = p.waitFor(); + if (res != 0) { + System.err.println("error: could not build Skara tooling"); + System.exit(1); + } + } else { + System.out.println("no updates found"); } }