123456789101112131415161718 |
- (defun parse-argv (args)
- (flet ((parse-int-value (option value)
- (handler-case (parse-integer value)
- (error (e)
- (error "Invalid value for ~S: ~S~% ~A" option value e)))))
- (loop for option = (pop args)
- for value = (pop args)
- while option
- if (not (starts-with option "--"))
- do (error "Invalid option: ~S" option)
- else
- if (equal option "--worker")
- append (list :worker-num (parse-int-value option value))
- else
- if (equal option "--port")
- append (list :port (parse-int-value option value))
- else
- do (error "Unknown option: ~S" option))))
|