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

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

[elpa] elpa-admin cc63328 234/357: * GNUmakefile (.gitignore): New rule


From: Stefan Monnier
Subject: [elpa] elpa-admin cc63328 234/357: * GNUmakefile (.gitignore): New rule
Date: Thu, 10 Dec 2020 18:06:50 -0500 (EST)

branch: elpa-admin
commit cc633282cac9e535a8da1f6c0df873790cc762ac
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    * GNUmakefile (.gitignore): New rule
    
    (all): Use it.
    
    * admin/archive-contents.el (archive-gitignore-externals): New function.
    
    * .gitignore: Update.
---
 GNUmakefile               |  6 +++++-
 admin/archive-contents.el | 24 ++++++++++++++++++++++++
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/GNUmakefile b/GNUmakefile
index d23d523..7d6d100 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -8,7 +8,7 @@ SITE_DIR=site
 
 .PHONY: archive-tmp changelogs process-archive archive-full org-fetch clean 
all do-it
 
-all: all-in-place
+all: all-in-place .gitignore
 
 CR_EXCEPTIONS=copyright_exceptions
 .PHONY: check_copyrights
@@ -81,6 +81,10 @@ archive-full: archive-tmp org-fetch
        #mkdir -p archive/admin
        #cp admin/* archive/admin/
 
+.gitignore: externals-list
+       $(EMACS) -l $(CURDIR)/admin/archive-contents.el \
+                --eval '(archive-gitignore-externals "$<" "$@")'
+
 # FIXME: Turn it into an `external', which will require adding the notion of
 # "snapshot" packages.
 org-fetch: archive-tmp
diff --git a/admin/archive-contents.el b/admin/archive-contents.el
index 2b1ffec..6f19177 100755
--- a/admin/archive-contents.el
+++ b/admin/archive-contents.el
@@ -761,5 +761,29 @@ If WITH-CORE is non-nil, it means we manage :core packages 
as well."
           (_ (message "Unknown external package kind `%S' for %s"
                       kind name)))))))
 
+;;; Manage .gitignore
+
+(defun archive-gitignore-externals (elf gf)
+  (let* ((el (read (find-file-noselect elf)))
+         (exts (delq nil
+                     (mapcar (lambda (x)
+                               (if (eq :external (nth 1 x)) (car x)))
+                             el)))
+         (core (delq nil
+                     (mapcar (lambda (x)
+                               (if (eq :core (nth 1 x)) (car x)))
+                             el))))
+    (with-current-buffer (find-file-noselect gf)
+      (goto-char (point-min))
+      (when (re-search-forward
+             "#.*External.*git.*\n\\(packages/[^*/\n]+/?\n\\)+"
+             nil 'move)
+        (replace-match ""))
+      (insert "# External packages with their own .git tree [autogenerated].\n"
+              (mapconcat (lambda (p) (format "packages/%s/\n" p))
+                         (sort (append exts core) #'string<)
+                         ""))
+      (save-buffer))))
+      
 (provide 'archive-contents)
 ;;; archive-contents.el ends here



reply via email to

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