35 lines
1.2 KiB
Text
35 lines
1.2 KiB
Text
(sb-ext:set-sbcl-source-location "~/sbcl/")
|
|
(defun print-condition-hook (condition hook)
|
|
"Print this error message (condition) and abort the current operation."
|
|
(declare (ignore hook))
|
|
(princ condition)
|
|
(clear-input)
|
|
(abort))
|
|
*debugger-hook*
|
|
(setf *debugger-hook* #'print-condition-hook)
|
|
;;; If the first user-processable command-line argument is a filename,
|
|
;;; disable the debugger, load the file handling shebang-line and quit.
|
|
(let ((script (and (second *posix-argv*)
|
|
(probe-file (second *posix-argv*)))))
|
|
(when script
|
|
;; Handle shebang-line
|
|
(set-dispatch-macro-character #\# #\!
|
|
(lambda (stream char arg)
|
|
(declare (ignore char arg))
|
|
(read-line stream)))
|
|
;; Disable debugger
|
|
(setf *invoke-debugger-hook*
|
|
(lambda (condition hook)
|
|
(declare (ignore hook))
|
|
;; Uncomment to get backtraces on errors
|
|
;; (sb-debug:backtrace 20)
|
|
(format *error-output* "Error: ~A~%" condition)
|
|
(quit)))
|
|
(load script)
|
|
(quit)))
|
|
;;; The following lines added by ql:add-to-init-file:
|
|
#-quicklisp
|
|
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
|
|
(user-homedir-pathname))))
|
|
(when (probe-file quicklisp-init)
|
|
(load quicklisp-init)))
|