diff options
| author | Teddy Wing | 2021-02-03 20:21:03 +0100 | 
|---|---|---|
| committer | Teddy Wing | 2021-02-03 20:21:03 +0100 | 
| commit | 074b4375a54e4bbf4539d37b1418eacb2a70f87a (patch) | |
| tree | dd8f6eab2cf96188fc95ec92ff35249cfee654f6 | |
| parent | b5c2f3a6ed194245e9c584f25b28d8f7c8f90218 (diff) | |
| download | extreload-074b4375a54e4bbf4539d37b1418eacb2a70f87a.tar.bz2 | |
main: Get WebSocket URL from command line for `*client*`
Keep the `*client*` global variable, but use the client in `config`,
constructed from the WebSocket URL passed from the command line.
Not a huge fan of the global variable, but it's way easier to keep it
like this rather than passing the client down to the `attach-to-target`
and `reload-extension` functions.
| -rw-r--r-- | l/src/config.lisp | 1 | ||||
| -rw-r--r-- | l/src/main.lisp | 17 | 
2 files changed, 9 insertions, 9 deletions
| diff --git a/l/src/config.lisp b/l/src/config.lisp index eb8bede..4e3cbbf 100644 --- a/l/src/config.lisp +++ b/l/src/config.lisp @@ -16,6 +16,7 @@       :documentation "True if the current tab should be reloaded")     (ws-client +     :reader ws-client       :documentation "WebSocket client")))  (defmethod print-object ((object config) stream) diff --git a/l/src/main.lisp b/l/src/main.lisp index a84e0cd..caadfe3 100644 --- a/l/src/main.lisp +++ b/l/src/main.lisp @@ -1,7 +1,5 @@  (in-package :extreload) -(defvar *client* (wsd:make-client "ws://127.0.0.1:55755/devtools/browser/20c6f8a1-6540-4226-a876-44b72c176ad5")) -  (defvar *wg* (wait-group:make-wait-group))  (opts:define-opts @@ -21,17 +19,18 @@  (defun main ()    (let ((config (parse-options))) -    (format t "~a~%" config)) +    ;; Store the WebSocket client as a global. +    (defvar *client* (ws-client config))      ;; TODO: error if no `socket-url` -  (with-websocket-connection (*client*) -    (wsd:on :message *client* #'ws-on-message) -    ; (wsd:on :message *client* #'(lambda (message) (ws-on-message message))) -    ;; TODO: Maybe defvar *config* and store client in the config +    (with-websocket-connection (*client*) +      (wsd:on :message *client* #'ws-on-message) +      ; (wsd:on :message *client* #'(lambda (message) (ws-on-message message))) +      ;; TODO: Maybe defvar *config* and store client in the config -    (websocket-send *client* (target-get-targets-msg 1)) +      (websocket-send *client* (target-get-targets-msg 1)) -    (wait-group:wait *wg*))) +      (wait-group:wait *wg*))))  (defun ws-on-message (message)    (let* ((response (jsown:parse message)) | 
