@VisibleForTesting
  static boolean isProgressFooterEnabled(MavenSession session) {
    if (!session.getRequest().isInteractiveMode()) {
      return false;
    }

    if ("plain".equals(System.getProperty(PropertyNames.CONSOLE))) {
      return false;
    }

    // Enables progress footer when ANSI is supported (Windows or System.console() not null and TERM
    // not 'dumb').
    if (Os.isFamily(Os.FAMILY_WINDOWS)) {
      return true;
    }
    return System.console() != null && !"dumb".equals(System.getenv("TERM"));
  }
Gets a property with the given name. First checks for a Maven user property (-D commandline
argument), then checks for a property defined in the POM, then checks for a Maven system
property, then returns null if none of those are defined.

@param propertyName the name of the property
@param project the Maven project
@param session the Maven session
@return the value of the property, or null if not defined
jib-maven-plugin/src/main/java/com/google/cloud/tools/jib/maven/MavenProjectProperties.java