public static void main(String[] args) throws Exception {
    if (args.length == 0 || !OPERATIONS.containsKey(args[0])) {
      System.err.println("Harp usage:");
      System.err.println("java -jar <path to harp jar> OPERATION arg...");
      System.err.println();
      System.err.println("Where operation is one of these commands:");
      for (Entry<String, String> opEntry : OPERATIONS.entrySet()) {
        System.err.println(Strings.padEnd(opEntry.getKey(), 8, ' ') + "  " + opEntry.getValue());
      }
      System.exit(1);
    }

    String op = args[0];
    switch (op) {
      case "run":
        run(args);
        break;
      case "node":
        node(args);
        break;
      case "test":
        test(args);
        break;
    }
  }