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

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

[nongnu] elpa/hyperdrive de24c7fffe 31/31: Merge branch 'wip/send-last-m


From: ELPA Syncer
Subject: [nongnu] elpa/hyperdrive de24c7fffe 31/31: Merge branch 'wip/send-last-modified-header'
Date: Fri, 3 Nov 2023 22:00:48 -0400 (EDT)

branch: elpa/hyperdrive
commit de24c7fffe02c0989300fcba63893b5fb08a01bf
Merge: 8f1ab68519 74a701b164
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>

    Merge branch 'wip/send-last-modified-header'
---
 hyperdrive-mirror.el | 16 +++++++++-------
 hyperdrive.el        |  8 +++++++-
 2 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/hyperdrive-mirror.el b/hyperdrive-mirror.el
index f2cd715968..286dd225c5 100644
--- a/hyperdrive-mirror.el
+++ b/hyperdrive-mirror.el
@@ -122,10 +122,10 @@ After uploading files, open PARENT-ENTRY."
          (queue (make-plz-queue
                  :limit hyperdrive-queue-limit
                  :finally (lambda ()
-                            (progress-reporter-done progress-reporter)
+                            (when (buffer-live-p (get-buffer 
"*hyperdrive-mirror*"))
+                              (kill-buffer "*hyperdrive-mirror*"))
                             (hyperdrive-open parent-entry)
-                            (with-current-buffer (get-buffer-create 
"*hyperdrive-mirror*")
-                              (revert-buffer nil t))))))
+                            (progress-reporter-done progress-reporter)))))
     (unless upload-files-and-urls
       (hyperdrive-user-error "No new/newer files to upload"))
     (pcase-dolist ((cl-struct hyperdrive-mirror-item file url) 
upload-files-and-urls)
@@ -228,8 +228,8 @@ predicate and set NO-CONFIRM to t."
                             :path (expand-file-name (file-relative-name file 
source) target-dir))))
                 (hyperdrive-fill entry :queue metadata-queue
                   :then (lambda (entry)
-                          (let* ((drive-mtime (hyperdrive-entry-mtime entry))
-                                 (local-mtime 
(file-attribute-modification-time (file-attributes file)))
+                          (let* ((drive-mtime (floor (float-time 
(hyperdrive-entry-mtime entry))))
+                                 (local-mtime (floor (float-time 
(file-attribute-modification-time (file-attributes file)))))
                                  (status (cond
                                           ((time-less-p drive-mtime 
local-mtime) 'newer)
                                           ((time-equal-p drive-mtime 
local-mtime) 'same)
@@ -279,8 +279,10 @@ Callback for queue finalizer in `hyperdrive-mirror'."
         (add-hook 'kill-buffer-hook #'hyperdrive-mirror--cache-visibility nil 
'local)
         (delete-all-overlays)
         (erase-buffer)
-        (hyperdrive-mirror--insert-taxy :name "Ignored" :items non-uploadable)
-        (hyperdrive-mirror--insert-taxy :name "To upload" :items uploadable)
+        (when non-uploadable
+          (hyperdrive-mirror--insert-taxy :name "Ignored" :items 
non-uploadable))
+        (when uploadable
+          (hyperdrive-mirror--insert-taxy :name "To upload" :items uploadable))
         (if-let ((section-ident)
                  (section (magit-get-section section-ident)))
             (goto-char (oref section start))
diff --git a/hyperdrive.el b/hyperdrive.el
index e2fe787ec4..c94e1c97a9 100644
--- a/hyperdrive.el
+++ b/hyperdrive.el
@@ -663,9 +663,15 @@ After successful upload, call THEN.  When QUEUE, use it."
                        (hyperdrive-read-entry :predicate #'hyperdrive-writablep
                                               :default-path 
(file-name-nondirectory filename)
                                               :latest-version t))))
-  (let ((url (hyperdrive-entry-url entry)))
+  (let ((url (hyperdrive-entry-url entry))
+        (last-modified (let ((system-time-locale "C"))
+                         (format-time-string "%Y-%m-%dT%T.%3NZ"
+                                             ;; "%a, %-d %b %Y %T %Z"
+                                             (file-attribute-modification-time
+                                              (file-attributes filename)) t))))
     (hyperdrive-api 'put url :queue queue
       :body `(file ,filename)
+      :headers `(("Last-Modified" . ,last-modified))
       :then then)
     (unless queue
       (hyperdrive-message "Uploading to \"%s\"..." url))))



reply via email to

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