;;; Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
(defpackage #:zone.frontend
- (:use #:common-lisp #:optparse #:net #:zone
+ (:use #:common-lisp #:mdw.sys-base #:optparse #:net #:zone
#+cmu #:mop
#+sbcl #:sb-mop)
(:export #:main))
(defvar opt-format :bind
"Which format to use on output.")
+(defun directory-exists-p (name)
+
+ ;; Make a pathname for NAME which has the right form for a directory.
+ (let ((dirpath
+ (let ((path (pathname name)))
+ (if (null (pathname-name path))
+ path
+ (make-pathname :directory
+ (append (or (pathname-directory path)
+ (list :relative))
+ (list (pathname-name path)))
+ :name nil
+ :type nil
+ :defaults path)))))
+
+ ;; Now check that it exists.
+ #+clisp (and (ext:probe-directory dirpath) (truename dirpath))
+ #-clisp (probe-file dirpath)))
+
(eval-when (:compile-toplevel :load-toplevel)
(defopthandler dir (var arg) ()
- (let ((path (probe-file arg)))
+ (let ((path (directory-exists-p arg)))
(if (and path
(not (pathname-name path)))
(setf var path)
"Write information about zone NAME.")))
(defun main ()
+ (set-command-line-arguments)
(with-unix-error-reporting ()
(let ((files nil))
(unless (option-parse-try