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

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

[nongnu] elpa/orgit 609fd0ccfb 68/76: orgit-export: Handle missing local


From: ELPA Syncer
Subject: [nongnu] elpa/orgit 609fd0ccfb 68/76: orgit-export: Handle missing local repository explicitly
Date: Thu, 13 Jan 2022 13:58:48 -0500 (EST)

branch: elpa/orgit
commit 609fd0ccfb5268704b5bc7d7ac1014d4960b9707
Author: Jonas Bernoulli <jonas@bernoul.li>
Commit: Jonas Bernoulli <jonas@bernoul.li>

    orgit-export: Handle missing local repository explicitly
    
    Use correct error-symbol in this case as well.
    
    Closes #10.
---
 orgit.el | 54 ++++++++++++++++++++++++++++++------------------------
 1 file changed, 30 insertions(+), 24 deletions(-)

diff --git a/orgit.el b/orgit.el
index 1feb78396f..64904eb6d3 100644
--- a/orgit.el
+++ b/orgit.el
@@ -401,31 +401,37 @@ store links to the Magit-Revision mode buffers for these 
commits."
 ;;; Export
 
 (defun orgit-export (path desc format gitvar idx)
-  (pcase-let*
-      ((`(,dir ,rev) (split-string path "::"))
-       (default-directory (file-name-as-directory (expand-file-name dir)))
-       (remotes (magit-git-lines "remote"))
-       (remote  (magit-get "orgit.remote"))
-       (remote  (cond ((= (length remotes) 1) (car remotes))
-                      ((member remote remotes) remote)
-                      ((member orgit-remote remotes) orgit-remote))))
-    (if remote
-        (if-let ((link (or (when-let ((url (magit-get "orgit" gitvar)))
-                             (format-spec url `((?r . ,rev))))
-                           (when-let ((url (magit-get "remote" remote "url"))
-                                      (format (cl-find-if
-                                               (lambda (elt)
-                                                 (string-match (car elt) url))
-                                               orgit-export-alist)))
-                               (format-spec (nth idx format)
-                                            `((?n . ,(match-string 1 url))
-                                              (?r . ,rev)))))))
-            (orgit--format-export link desc format)
-          (signal 'org-link-broken
-                  (list (format "Cannot determine public url for %s" path))))
+  (pcase-let* ((`(,dir ,rev) (split-string path "::"))
+               (dir (file-name-as-directory (expand-file-name dir))))
+    (if (file-exists-p dir)
+        (let* ((default-directory dir)
+               (remotes (magit-git-lines "remote"))
+               (remote  (magit-get "orgit.remote"))
+               (remote  (cond ((= (length remotes) 1) (car remotes))
+                              ((member remote remotes) remote)
+                              ((member orgit-remote remotes) orgit-remote))))
+          (if remote
+              (if-let ((link
+                        (or (when-let ((url (magit-get "orgit" gitvar)))
+                              (format-spec url `((?r . ,rev))))
+                            (when-let ((url (magit-get "remote" remote "url"))
+                                       (format (cl-find-if
+                                                (lambda (elt)
+                                                  (string-match (car elt) url))
+                                                orgit-export-alist)))
+                              (format-spec (nth idx format)
+                                           `((?n . ,(match-string 1 url))
+                                             (?r . ,rev)))))))
+                  (orgit--format-export link desc format)
+                (signal 'org-link-broken
+                        (list (format "Cannot determine public url for %s"
+                                      path))))
+            (signal 'org-link-broken
+                    (list (format "Cannot determine public remote for %s"
+                                  default-directory)))))
       (signal 'org-link-broken
-              (list (format "Cannot determine public remote for %s"
-                            default-directory))))))
+              (list (format "Cannot determine public url for %s %s"
+                            path "(which itself does not exist)"))))))
 
 (defun orgit--format-export (link desc format)
   (pcase format



reply via email to

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