branch: elpa/hyperdrive commit 9f07c4588ee19d3235bbb3bd684480cfb874dfe5 Author: Joseph Turner <jos...@ushin.org> Commit: Joseph Turner <jos...@ushin.org>
Change: (he/api) Fill latest version --- hyperdrive-lib.el | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/hyperdrive-lib.el b/hyperdrive-lib.el index 2e00a91114..a5af890baf 100644 --- a/hyperdrive-lib.el +++ b/hyperdrive-lib.el @@ -229,16 +229,19 @@ REST is passed to `h/api', which see. (defun he//api-then (entry response) "Update ENTRY's metadata according to RESPONSE. -Updates ENTRY's hyperdrive's disk usage." - (pcase-let* (((cl-struct plz-response (headers (map x-drive-size))) +Updates ENTRY's hyperdrive's disk usage and latest version." + (pcase-let* (((cl-struct plz-response (headers (map x-drive-size etag))) response) ((cl-struct h/entry hyperdrive) entry) ((cl-struct hyperdrive etc) hyperdrive)) (when x-drive-size (setf (map-elt etc 'disk-usage) (cl-parse-integer x-drive-size) - (h/etc hyperdrive) etc) - ;; TODO: Consider debouncing or something for hyperdrive-persist to minimize I/O. - (h/persist hyperdrive)))) + (h/etc hyperdrive) etc)) + (when (and etag (h//entry-directory-p entry)) + ;; Directory ETag header is always the latest version of the drive. + (setf (h/latest-version hyperdrive) (string-to-number etag))) + ;; TODO: Consider debouncing or something for hyperdrive-persist to minimize I/O. + (h/persist hyperdrive))) (defun h/gateway-needs-upgrade-p () "Return non-nil if the gateway is responsive and needs upgraded."