scripts: Make web server address and port configurable.
authorArun Isaac <arunisaac@systemreboot.net>
Sun, 2 Jan 2022 19:43:24 +0000 (01:13 +0530)
committerRicardo Wurmus <rekado@elephly.net>
Fri, 7 Jan 2022 15:42:20 +0000 (16:42 +0100)
* scripts/mumi.in (%options): Add address and port options.
(show-mumi-usage): Mention address and port in mumi web usage.
Pass on address and port options to start-mumi-web-server.

scripts/mumi.in

index 5ec33cc01d5094d64755020735577efbfc7ccb14..9c997a24147cbd7cc380ee22d969a4eb8a8974f3 100644 (file)
 
 (define %options
   ;; Specifications of the command-line options
-  (list (option '("listen-repl") #f #t
+  (list (option '("address") #t #f
+                (lambda (opt name arg result)
+                  (catch #t
+                    (lambda ()
+                      (inet-pton AF_INET arg))
+                    (lambda _
+                      (error "invalid web server address" arg)))
+                  (alist-cons 'address arg
+                              (alist-delete 'address result))))
+        (option '("port") #t #f
+                (lambda (opt name arg result)
+                  (let ((port (string->number arg)))
+                    (if port
+                        (alist-cons 'port port
+                                    (alist-delete 'port result))
+                        (error "invalid web server port" arg)))))
+        (option '("listen-repl") #f #t
                 (lambda (opt name arg result)
                   (let ((port (cond (arg => string->number)
                                     (else %default-repl-server-port))))
 (define (show-mumi-usage)
   (format (current-error-port)
           "
-    `mumi web [--listen-repl[=port]] [--disable-mailer]':
+    `mumi web [--address=address] [--port=port] [--listen-repl[=port]] [--disable-mailer]':
          start the application web server.
 
     `mumi mailer --sender=SENDER --smtp=SMTP:
                    "REPL server listening on port ~a~%"
                    repl-port)
            (spawn-server (make-tcp-server-socket #:port repl-port))))
-       (start-mumi-web-server "0.0.0.0" 1234))))
+       (start-mumi-web-server (or (assoc-ref opts 'address)
+                                  "0.0.0.0")
+                              (or (assoc-ref opts 'port)
+                                  1234)))))
   (_ (show-mumi-usage)))