luv

Workshop wiki

runner.lisp

luvcraft/tools/runner.lisp

system luvcraft/tools · 14 definitions · on GitHub

in-package#:luvcraft.tools
defunusage
&optional
stream*standard-output*
formatstream"Usage: luv COMMAND [ARGS...]~%"
formatstream"~%"
formatstream"Commands:~%"
formatstream" block-world TARGET [--backend metal|vulkan] [--count N]~%"
formatstream" [--width N] [--height N] [--yaw-step R]~%"
formatstream" gazetteer TARGET-DIR [--backend metal|vulkan] [--view NAME]~%"
formatstream" [--width N] [--height N]~%"
formatstream" [--count N] [--forward-step R] [--yaw-step R]~%"
formatstream" [--day-start R] [--day-step R] [--difference-scale R]~%"
formatstream" [--shadow-only 1]~%"
formatstream" eval FORM [--package PACKAGE]~%"
formatstream" web [--host HOST] [--port PORT]~%"
formatstream" lobby get KEY | put KEY [VALUE] | rm KEY | ls | host~%"
formatstream" (the tailnet lobby's value store; put without VALUE reads stdin)~%"
formatstream" help~%"
define-conditioncommand-line-error
error
message:initarg:message:readercommand-line-error-message
:report
lambda
conditionstream
formatstream"~A"
command-line-error-messagecondition
defuncommand-line-error
control&restarguments
error'command-line-error:message
apply#'formatnilcontrolarguments
defunparse-integer-option
stringname
handler-case
let
value
parse-integerstring:junk-allowednil
unless
pluspvalue
command-line-error"~A must be positive, got ~D."namevalue
value
parse-error
command-line-error"~A must be an integer, got ~S."namestring
defunparse-real-option
stringname
let
*read-eval*nil
handler-case
multiple-value-bind
read-from-stringstring
unless
every
lambda
character
findcharacter'
#\Space#\Tab#\Newline#\Return
subseqstringposition
command-line-error"~A must be a real number, got ~S."namestring
unless
realpvalue
command-line-error"~A must be a real number, got ~S."namestring
value
error
command-line-error"~A must be a real number, got ~S."namestring
defunparse-backend-option
stringname
cond
string-equalstring"vulkan"
:vulkan
#+darwin ((string-equal string "metal") :metal)
t
command-line-error"~A must be ~:[vulkan~;metal or vulkan~], got ~S."name#+darwint#-darwinnilstring
defunmake-backend-provider
backend
casebackend
:vulkan
#+darwin (:metal (make-instance 'luv:metal-gpu-provider))
otherwise
command-line-error"Unsupported GPU backend ~S."backend
defunoption-value
argumentsoption
or
firstarguments
command-line-error"~A requires a value."option
defunparse-keyword-options
argumentsspecs
let
positionals'
options'
loopwhileargumentsforargument=
poparguments
do
cond
string=argument"--"
dolist
positionalarguments
pushpositionalpositionals
setfargumentsnil
uiop:string-prefix-p"--"argument
let*
spec
assocargumentspecs:test#'string=
key
or
secondspec
command-line-error"Unknown option ~A."argument
parser
or
thirdspec
command-line-error"Unknown option ~A."argument
value
option-valueargumentsargument
poparguments
setf
getfoptionskey
funcallparservalueargument
t
pushargumentpositionals
values
nreversepositionals
options
defunprint-values
values
dolist
valuevalues
formatt"~S~%"value
values
defuncommand-eval
arguments
multiple-value-bind
positionalsoptions
parse-keyword-optionsarguments`
"--package":package,
lambda
valueoption
declare
ignoreoption
value
unless
=1
lengthpositionals
command-line-error"eval expects exactly one FORM."
let*
package-name
or
getfoptions:package
"LUVCRAFT"
package
or
find-packagepackage-name
command-line-error"No package named ~A."package-name
let
*package*package
print-values
multiple-value-list
eval
read-from-string
firstpositionals
defundispatch-command
commandarguments
cond
or
string=command"help"
string=command"--help"
string=command"-h"
string=command"block-world"
string=command"gazetteer"
string=command"web"
command-webarguments
string=command"eval"
command-evalarguments
string=command"lobby"
command-lobbyarguments
t
command-line-error"Unknown command ~A."command
defundispatch-main
arguments
handler-case
ifarguments
dispatch-command
firstarguments
restarguments
progn
usage*error-output*
command-line-error
condition
format*error-output*"luv: ~A~%~%"condition
usage*error-output*
defunmain
&optional
arguments
uiop:command-line-arguments
handler-case
progn
if
string=
or
firstarguments
""
"web"
dispatch-mainarguments
finish-output*standard-output*
finish-output*error-output*
error
condition
format*error-output*"luv: ~A~%"condition
finish-output*error-output*