- (with-unix-error-reporting ()
- (let ((files nil))
- (unless (option-parse-try
- (do-options ()
- (nil (rest)
- (when (zerop (length rest))
- (option-parse-error "no files to read"))
- (setf files rest))))
- (die-usage))
- (dolist (f files)
- (let ((*package* (make-package "ZONE.SCRATCH"
- :use '(#:common-lisp #:net #:zone))))
- (load f :verbose nil :print nil :if-does-not-exist :error)
- (delete-package *package*)))
- (zone-save opt-zones :format opt-format))))
+ (let ((files nil))
+ (flet ((run ()
+ (dolist (f files)
+ (let ((*package* (make-package "ZONE.SCRATCH"
+ :use '(#:common-lisp
+ #:net #:zone))))
+ (progv *zone-config* (mapcar #'symbol-value *zone-config*)
+ (load f :verbose nil :print nil :if-does-not-exist :error)
+ (delete-package *package*))))
+ (zone-save opt-zones :format opt-format)))
+ (with-unix-error-reporting ()
+ (unless (option-parse-try
+ (do-options ()
+ (nil (rest)
+ (when (zerop (length rest))
+ (option-parse-error "no files to read"))
+ (setf files rest))))
+ (die-usage)))
+ (if opt-debug
+ (run)
+ (with-unix-error-reporting () (run))))))