;;; -*- Mode:LISP; Package:USER; Base:10 -*-




(defun dump-all-filenames (file)
  (with-open-file (stream file :direction :output)
    (print-all-filenames stream)))

(defun print-all-filenames (stream)
  (dolist (host si:host-alist)
    (setq host (cadr host))
    (when (and (not (typep host 'fs::unix-host))
	       (chaos:host-up-p host))
      (terpri stream)
      (si:condition-case ()
	  (print-dir (make-pathname :host host
				    :directory :root
				    :name :wild
				    :type :wild
				    :version :newest)
		     0 stream)
	(sys:abort (format stream "~&Can't get it"))))))



(defun print-dir (directory indent stream)
  (dotimes (i indent) (zl:tyo #\space stream))
  (zl:send directory :print-self stream nil nil)
  (terpri stream)
  (setq indent (1+ indent))
  (let ((dirlist (fs:directory-list directory)))
    (dolist (file (cdr dirlist))
      (dotimes (i indent) (zl:tyo #\space stream))
      (zl:send (car file) :print-self stream nil nil)
      (terpri stream)
      (if (get file :directory)
	  (print-dir (zl:send (zl:send (car file) :pathname-as-directory)
			      :new-pathname
			      :name :wild
			      :type :wild
			      :version :newest)
		     indent stream)))))
	
    
	