mirror of
https://github.com/roswell/roswell.git
synced 2026-09-10 07:16:17 -04:00
add util-main.lisp
This commit is contained in:
parent
d15cf90360
commit
0974e20c6c
|
|
@ -15,7 +15,7 @@ endif
|
|||
|
||||
LISPS = helper.el \
|
||||
init.lisp \
|
||||
util.lisp \
|
||||
util.lisp util-main.lisp \
|
||||
util-swank.lisp \
|
||||
locations.lisp \
|
||||
patch-quicklisp.lisp \
|
||||
|
|
|
|||
|
|
@ -3,19 +3,15 @@
|
|||
#|Creates a new ros script, optionally based on a template.
|
||||
exec ros -Q -m roswell -N roswell -- $0 "$@"
|
||||
|#
|
||||
|
||||
(progn
|
||||
(roswell:include "util")
|
||||
(roswell:quicklisp :environment nil))
|
||||
(roswell:include "util-main"))
|
||||
|
||||
(defpackage :ros.script.init.3672012201
|
||||
(:use :cl :roswell.util))
|
||||
(:use :cl :roswell.util.main))
|
||||
(in-package :ros.script.init.3672012201)
|
||||
|
||||
(defun main (&optional name &rest r)
|
||||
(if name
|
||||
(apply (or (module "init" name)
|
||||
(module "init" "default"))
|
||||
`(,name ,@r))
|
||||
#+nil "show usage"))
|
||||
(defun main (&rest r)
|
||||
(module-main r :default "default")
|
||||
;; show usage ?
|
||||
)
|
||||
;;; vim: set ft=lisp lisp:
|
||||
|
|
|
|||
29
lisp/util-main.lisp
Normal file
29
lisp/util-main.lisp
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
(roswell:include "util" "util-main")
|
||||
(defpackage :roswell.util.main
|
||||
(:use :cl :roswell.util)
|
||||
(:export :module-main))
|
||||
(in-package :roswell.util.main)
|
||||
|
||||
(defun module-main (args &key default usage)
|
||||
(let* ((name (first args))
|
||||
(packagename (package-name *package*))
|
||||
(pos (loop repeat 3
|
||||
with pos = 0
|
||||
for p = (position #\. packagename :start pos)
|
||||
while p
|
||||
collect p
|
||||
do (setf pos (1+ p))))
|
||||
(module-name (string-downcase
|
||||
(subseq packagename (1+ (second pos)) (third pos)))))
|
||||
(cond
|
||||
((and name
|
||||
(module module-name name))
|
||||
(apply (module module-name name) args))
|
||||
((and name
|
||||
default
|
||||
(module module-name default))
|
||||
(apply (module module-name default) args))
|
||||
((and usage
|
||||
(module module-name usage))
|
||||
(apply (module module-name usage) args)))))
|
||||
|
||||
Loading…
Reference in a new issue