emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/kiwix 4243689 156/192: check whether Docker image "kiwi


From: Stefan Monnier
Subject: [elpa] externals/kiwix 4243689 156/192: check whether Docker image "kiwix/kiwix-serve" is available
Date: Sat, 19 Dec 2020 00:41:51 -0500 (EST)

branch: externals/kiwix
commit 4243689f319dec97e589fb880623a2424a3a02c3
Author: stardiviner <numbchild@gmail.com>
Commit: stardiviner <numbchild@gmail.com>

    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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]