private static boolean performPreemptiveSystemCheck() {

    File tmpDir = DirectorySettings.getTmpDirectory();
    File cacheDir = DirectorySettings.getCacheDirectory();
    File medsavantDir = DirectorySettings.getMedSavantDirectory();

    System.out.println("Directory information:");
    System.out.println(
        "  TMP DIRECTORY: " + tmpDir.getAbsolutePath() + " has permissions " + permissions(tmpDir));
    System.out.println(
        "  MEDSAVANT DIRECTORY: "
            + medsavantDir.getAbsolutePath()
            + " has permissions "
            + permissions(medsavantDir));
    System.out.println(
        "  CACHE DIRECTORY: "
            + cacheDir.getAbsolutePath()
            + " has permissions "
            + permissions(cacheDir));
    System.out.println();

    boolean passed = true;

    if (!completelyPermissive(tmpDir)) {
      System.out.println(
          "ERROR: "
              + tmpDir.getAbsolutePath()
              + " does not have appropriate permissions (require rwx)");
      passed = false;
    }

    if (!completelyPermissive(medsavantDir)) {
      System.out.println(
          "ERROR: "
              + medsavantDir.getAbsolutePath()
              + " does not have appropriate permissions (require rwx)");
      passed = false;
    }
    if (!completelyPermissive(cacheDir)) {
      System.out.println(
          "ERROR: "
              + cacheDir.getAbsolutePath()
              + " does not have appropriate permissions (require rwx)");
      passed = false;
    }
    try {
      File cacheNow = DirectorySettings.generateDateStampDirectory(cacheDir);
      if (!completelyPermissive(cacheNow)) {
        System.out.println(
            "ERROR: Directories created inside "
                + cacheDir
                + " do not have appropriate permissions (require rwx)");
        passed = false;
      }
    } catch (IOException ex) {
      System.out.println("ERROR: Couldn't create directory inside " + cacheDir.getAbsolutePath());
      passed = false;
    }

    try {
      File tmpNow = DirectorySettings.generateDateStampDirectory(tmpDir);
      if (!completelyPermissive(tmpNow)) {
        System.out.println(
            "ERROR: Directories created inside "
                + tmpDir
                + " do not have appropriate permissions (require rwx)");
        passed = false;
      }
    } catch (IOException ex) {
      System.out.println("ERROR: Couldn't create directory inside " + tmpDir.getAbsolutePath());
      passed = false;
    }

    return passed;
  }