|
111 | 111 | (asdf:component-name system)))) |
112 | 112 | (when (and (stringp value) (zerop (length value))))))) |
113 | 113 | (check-attribute 'asdf:system-description :description) |
114 | | - ;; Not yet |
115 | | - ;;(check-attribute 'asdf:system-license :license) |
| 114 | + (check-attribute 'asdf:system-license :license) |
116 | 115 | (check-attribute 'asdf:system-author :author)))) |
117 | 116 |
|
118 | 117 | (defun compute-dependencies (system-file system-name) |
|
190 | 189 | (sb-alien:alien-funcall |
191 | 190 | (sb-alien:extern-alien "disable_lossage_handler" (function sb-alien:void))) |
192 | 191 | (setf *print-pretty* nil) |
193 | | - (when (equalp (second argv) "--asdf-version") |
194 | | - (format t "~A~%" (asdf:asdf-version)) |
195 | | - (sb-ext:exit :code 0)) |
196 | | - (when (equalp (second argv) "--sbcl-version") |
197 | | - (format t "~A~%" (lisp-implementation-version)) |
198 | | - (sb-ext:exit :code 0)) |
199 | | - (unless (getenv "DEPCHECK_DEBUG") |
200 | | - (sb-ext:disable-debugger)) |
201 | | - (setenv "SBCL_HOME" |
202 | | - (load-time-value |
203 | | - (directory-namestring sb-int::*core-string*))) |
204 | | - #+nil |
205 | | - (setenv "CC" "gcc") |
206 | | - (eval *load-op-wrapper*) |
207 | | - (when (getenv "DEPCHECK_FRESH_FASLS") |
208 | | - (set-fasl-output-directory (pathname (format nil "/tmp/depcheck/~D/" |
209 | | - (getpid))))) |
210 | | - (destructuring-bind (index project system dependency-file errors-file |
211 | | - &optional *metadata-required-p*) |
212 | | - (rest argv) |
| 192 | + (sb-ext:disable-debugger) |
| 193 | + (let (index project system dependency-file errors-file |
| 194 | + (args (rest argv))) |
| 195 | + (macrolet ((check-args (&rest vars) |
| 196 | + `(progn |
| 197 | + ,@(loop for var in vars |
| 198 | + for flag = (format nil "--~A" |
| 199 | + (string-downcase var)) |
| 200 | + collect |
| 201 | + `(unless ,var |
| 202 | + (error "Missing option ~S" ,flag)))))) |
| 203 | + (loop |
| 204 | + (when (endp args) |
| 205 | + (check-args index project system dependency-file errors-file) |
| 206 | + (return)) |
| 207 | + (let ((arg (pop args))) |
| 208 | + (cond ((equal arg "--index") |
| 209 | + (setf index (pop args))) |
| 210 | + ((equal arg "--project") |
| 211 | + (setf project (pop args))) |
| 212 | + ((equal arg "--system") |
| 213 | + (setf system (pop args))) |
| 214 | + ((equal arg "--dependency-file") |
| 215 | + (setf dependency-file (pop args))) |
| 216 | + ((equal arg "--errors-file") |
| 217 | + (setf errors-file (pop args))) |
| 218 | + ;; Optional args follow |
| 219 | + ((equal arg "--asdf-version") |
| 220 | + (write-line (asdf:asdf-version)) |
| 221 | + (sb-ext:exit :code 0)) |
| 222 | + ((equal arg "--sbcl-version") |
| 223 | + (write-line (lisp-implementation-version)) |
| 224 | + (sb-ext:exit :code 0)) |
| 225 | + ((equal arg "--debug") |
| 226 | + (sb-ext:enable-debugger)) |
| 227 | + ((equal arg "--metadata-required") |
| 228 | + (setf *metadata-required-p* t)) |
| 229 | + ((equal arg "--fasl-directory") |
| 230 | + (let ((path (pop args))) |
| 231 | + (ensure-directories-exist path) |
| 232 | + (set-fasl-output-directory (truename path)))) |
| 233 | + (t |
| 234 | + (error "Unknown argument ~S" arg)))))) |
213 | 235 | (setf *systems* (load-asdf-system-table index)) |
| 236 | + (setenv "SBCL_HOME" |
| 237 | + (load-time-value |
| 238 | + (directory-namestring sb-int::*core-string*))) |
| 239 | + (eval *load-op-wrapper*) |
214 | 240 | (with-open-file (*error-output* errors-file |
215 | 241 | :if-exists :supersede |
216 | 242 | :direction :output) |
|
0 commit comments