roswell.roswell/lisp/list-versions.lisp
2017-09-20 02:42:05 +09:00

26 lines
1.1 KiB
Common Lisp

(defpackage :roswell.list.versions
(:use :cl :roswell.util))
(in-package :roswell.list.versions)
(defun versions (&rest args)
;; Experimental?
(setf args (cdr args))
(if args
(destructuring-bind (impl version) (parse-version-spec (impl (first args)))
(declare (ignore version))
(format *error-output* "Installable versions for ~A:~%" impl)
(let ((fun (module "install" impl)))
(and (setq fun (funcall fun :list))
(format t "~{~A~%~}" (funcall fun)))))
(format t "candidates for ros list versions [impl] are:~2%~{~A~%~}"
(mapcar (lambda (x)
(subseq x 8))
(remove-if-not
(lambda (x)
(string-equal "install-" x :end2 (min 8 (length x))))
(mapcar #'pathname-name
(directory (make-pathname
:defaults *load-pathname*
:type "lisp"
:name :wild))))))))