docs: public static void walkFileSystem(File base, Closure action) {
  
          List<FileWalkState> m_states = new ArrayList<FileWalkState>();
          m_states.add(createFileWalkState(base));
          while (!m_states.isEmpty()) {
              // pop the top off the state stack, process it, then push states for all subdirectories onto it
              FileWalkState last = m_states.remove(m_states.size() - 1);
              action.execute(last);
              for (File dir : last.getDirectories()) {
                  m_states.add(createFileWalkState(dir));
              }
          }
      }