[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/hyperdrive 960232a9b1 010/163: Add: (h/ensure-gateway)
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/hyperdrive 960232a9b1 010/163: Add: (h/ensure-gateway) |
Date: |
Fri, 31 May 2024 04:00:07 -0400 (EDT) |
branch: elpa/hyperdrive
commit 960232a9b176ae3c6ca31ae24d457e260f07ad77
Author: Adam Porter <adam@alphapapa.net>
Commit: Joseph Turner <joseph@ushin.org>
Add: (h/ensure-gateway)
---
hyperdrive-lib.el | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/hyperdrive-lib.el b/hyperdrive-lib.el
index 85a467c76d..b5043136fe 100644
--- a/hyperdrive-lib.el
+++ b/hyperdrive-lib.el
@@ -167,6 +167,8 @@ make the request."
;; could remove redundant calls to
;; `h//fill-latest-version' everywhere else.
(declare (indent defun))
+ (unless (h/ensure-gateway)
+ (h/error "Gateway not installed or incorrect version; request aborted"))
(pcase method
((and (or 'get 'head)
(guard (string-suffix-p "/" url)))
@@ -197,6 +199,28 @@ make the request."
;; We pass only the `plz-error' struct to the ELSE* function.
(funcall else* (caddr err))))))
+(defun h/ensure-gateway ()
+ "Return non-nil if gateway version correct; or offer install and return nil."
+ (declare-function hyperdrive-hyper-gateway-ushin-version "hyperdrive")
+ (defvar h/gateway-version-correct-p)
+ (defvar h/gateway-version-expected)
+ (or h/gateway-version-correct-p
+ ;; Version unknown: verify it.
+ (when (equal h/gateway-version-expected
+ ;; FIXME: If gateway is installed at correct version but not
+ ;; running, this would try to reinstall it.
+ (ignore-errors
+ (hyperdrive-hyper-gateway-ushin-version)))
+ (setf h/gateway-version-correct-p t))
+ (if (yes-or-no-p "Gateway not installed at expected version; download
correct version (y) or proceed anyway (n)? ")
+ ;; Abort request, install version and set
`h/gateway-version-correct-p'.
+ (progn
+ (declare-function h/install "hyperdrive")
+ (h/install 'force)
+ nil)
+ ;; Override and use existing version.
+ (setf h/gateway-version-correct-p t))))
+
(defun h/api-default-else (else plz-err)
"Handle common errors, overriding ELSE.
Checks for common errors; if none are found, calls ELSE with
- [nongnu] elpa/hyperdrive 4b23c6bf50 144/163: Change: (h/check-gateway-version) Say version expected/got, (continued)
- [nongnu] elpa/hyperdrive 4b23c6bf50 144/163: Change: (h/check-gateway-version) Say version expected/got, ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive 684856884d 146/163: Tidy: (h/menu-bar-menu) Capitalize labels, ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive 84844d645f 149/163: Fix: (h/gateway-command-args) Run gateway on user-defined port, ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive 42778de4c2 154/163: Fix: (hyperdrive-hyper-gateway-port) define-obsolete-variable-alias, ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive bbdefc9816 158/163: Refactor: (h/install), ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive 1026092bc6 156/163: Change: (h/gateway-command-args) Add "--port" at runtime, ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive 3dc890cc9d 161/163: Tidy: Checkdoc, ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive 3f4a789f52 014/163: Docs: (CONTRIBUTING.org) Add version numbers locations section, ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive 024d74b64f 015/163: Meta: (.dir-locals.el) Set org-id-link-to-org-use-id nil, ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive 0f214f58ee 017/163: Docs: (CONTRIBUTING.org) Add links to release hashsums, ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive 960232a9b1 010/163: Add: (h/ensure-gateway),
ELPA Syncer <=
- [nongnu] elpa/hyperdrive 1c15a779bd 011/163: Notes: Update, ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive a2d564f821 018/163: Add: (h/restart), ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive 473013eae2 007/163: Add: Vars (h/gateway-version-expected, h/gateway-version-correct-p), ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive 03650d7bad 021/163: Tidy: Error messages, ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive 0e0942f731 023/163: Fix: (h/install), ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive d751f52dc2 024/163: Change: (h//gateway-start) Simplify, ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive c33cf48e01 025/163: Refactor: Gateway status things, ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive becda7b0fe 012/163: Change: (h/gateway-url-alist) Update URLs for Codeberg, ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive 61986edc91 020/163: Change: (h/gateway-version-expected) Update to 3.8.0, ELPA Syncer, 2024/05/31
- [nongnu] elpa/hyperdrive 1e439d827a 006/163: Change: (hyperdrive-hyper-gateway-ushin-version) Return version, ELPA Syncer, 2024/05/31