branch: externals/kiwix
commit 4243689f319dec97e589fb880623a2424a3a02c3
Author: stardiviner <[email protected]>
Commit: stardiviner <[email protected]>
check whether Docker image "kiwix/kiwix-serve" is available
---
kiwix.el | 24 +++++++++++++++++-------
1 file changed, 17 insertions(+), 7 deletions(-)
diff --git a/kiwix.el b/kiwix.el
index a7cce93..399e21c 100644
--- a/kiwix.el
+++ b/kiwix.el
@@ -202,20 +202,30 @@ Like in function `kiwix-ajax-search-hints'.")
(browse-url-browser-function kiwix-default-browser-function))
(browse-url url)))
+(defun kiwix-docker-check ()
+ "Make sure Docker image 'kiwix/kiwix-server' is available."
+ (let ((docker-image (replace-regexp-in-string
+ "\n" ""
+ (shell-command-to-string
+ "docker image ls kiwix/kiwix-serve | sed -n '2p' | cut
-d ' ' -f 1"))))
+ (string-equal docker-image "kiwix/kiwix-serve")))
+
(defvar kiwix-server-available? nil
"The kiwix-server current available?")
(defun kiwix-ping-server ()
"Ping Kiwix server to set `kiwix-server-available?' global state variable."
+ (when kiwix-server-use-docker
+ (kiwix-docker-check))
(let ((inhibit-message t))
(request kiwix-server-url
- :type "GET"
- :sync t
- :parser (lambda () (libxml-parse-html-region (point-min)
(point-max)))
- :success (function* (lambda (&key data &allow-other-keys)
- (setq kiwix-server-available? t)))
- :error (function* (lambda (&rest args &key error-thrown
&allow-other-keys)
- (setq kiwix-server-available? nil))))))
+ :type "GET"
+ :sync t
+ :parser (lambda () (libxml-parse-html-region (point-min) (point-max)))
+ :success (function* (lambda (&key data &allow-other-keys)
+ (setq kiwix-server-available? t)))
+ :error (function* (lambda (&rest args &key error-thrown
&allow-other-keys)
+ (setq kiwix-server-available? nil))))))
(defun kiwix-ajax-search-hints (input &optional selected-library)
"Instantly AJAX request to get available Kiwix entry keywords