mirror of
https://github.com/roswell/roswell.git
synced 2026-09-10 07:16:17 -04:00
52 lines
2.9 KiB
Common Lisp
52 lines
2.9 KiB
Common Lisp
(defpackage :roswell.help.options
|
|
(:use :cl)
|
|
(:export :*options* :options))
|
|
(in-package :roswell.help.options)
|
|
|
|
(defvar *options*
|
|
'((() ("--version") "Print version information and quit")
|
|
(("-w" "CODE") ("--wrap" "CODE") "Run roswell with a shell wrapper CODE,")
|
|
(("-m" "IMAGE") ("--image" "IMAGE") "continue from Lisp image IMAGE")
|
|
(("-L" "NAME") ("--lisp" "NAME") "Run roswell with a lisp impl NAME[/VERSION].")
|
|
(("-l" "FILE") ("--load" "FILE") "load lisp FILE while building")
|
|
(("-S" "X") ("--source-registry" "X") "override source registry of asdf systems")
|
|
(("-s" "SYSTEM") ("--system" "SYSTEM") "load asdf SYSTEM while building")
|
|
(() ("--load-system" "SYSTEM")"same as above (buildapp compatibility)")
|
|
(("-p" "PACKAGE")("--package" "PACKAGE") "change current package to PACKAGE")
|
|
(("-sp" "SP") ("--system-package" "SP") "combination of -s SP and -p SP")
|
|
(("-e" "FORM") ("--eval" "FORM") "evaluate FORM while building")
|
|
(() ("--require" "MODULE") "require MODULE while building")
|
|
(("-q") ("--quit") "quit lisp here")
|
|
(("-r" "FUNC") ("--restart" "FUNC") "restart from build by calling (FUNC)")
|
|
(("-E" "FUNC") ("--entry" "FUNC") "restart from build by calling (FUNC argv)")
|
|
(("-i" "FORM") ("--init" "FORM") "evaluate FORM after restart")
|
|
(("-ip" "FORM") ("--print" "FORM") "evaluate and princ FORM after restart")
|
|
(("-iw" "FORM") ("--write" "FORM") "evaluate and write FORM after restart")
|
|
(("-F" "FORM") ("--final" "FORM") "evaluate FORM before dumping IMAGE")
|
|
(("+R") ("--no-rc") "skip /etc/rosrc, ~/.roswell/init.lisp")
|
|
(("-A") ("--asdf") "use new asdf")
|
|
(("+Q") ("--no-quicklisp") "do not use quicklisp")
|
|
(("-v") ("--verbose") "be quite noisy while building")
|
|
(() ("--quiet") "be quite quiet while building (default)")
|
|
(() ("--test") "for test purpose")))
|
|
|
|
(defun options (argv)
|
|
(declare (ignorable argv))
|
|
(let ((p 3)
|
|
(w1 0)
|
|
(w2 0)
|
|
(stream *error-output*)
|
|
(options *options*))
|
|
(format stream "Options:~%")
|
|
(loop for l in options
|
|
maximize (length (second (first l))) into a
|
|
maximize (+ (length (first (second l)))
|
|
(length (second (second l)))) into b
|
|
finally (setf w1 (+ a 2)
|
|
w2 (+ b 2)))
|
|
(loop for l in options
|
|
do (format stream "~va~3a ~va~va~a~%"
|
|
p " " (or (first (first l))"") w1 (or (second (first l)) "")
|
|
w2 (format nil "~A ~A"(or (first (second l))"") (or (second (second l))""))
|
|
(third l)))))
|