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

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

[elpa] master cc7a8a6: * GNUmakefile (.gitignore): New rule


From: Stefan Monnier
Subject: [elpa] master cc7a8a6: * GNUmakefile (.gitignore): New rule
Date: Thu, 28 Jul 2016 19:49:14 +0000 (UTC)

branch: master
commit cc7a8a652b60b62363c2fb2760da543fcd6c71e1
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>

    * GNUmakefile (.gitignore): New rule
    
    (all): Use it.
    
    * admin/archive-contents.el (archive-gitignore-externals): New function.
    
    * .gitignore: Update.
---
 .gitignore                |   30 ++++++++++++++++--------------
 GNUmakefile               |    6 +++++-
 admin/archive-contents.el |   24 ++++++++++++++++++++++++
 3 files changed, 45 insertions(+), 15 deletions(-)

diff --git a/.gitignore b/.gitignore
index 43c9d2b..7f7e600 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,23 +9,25 @@ core
 packages/*/*-autoloads.el
 packages/*/*-pkg.el
 
-# External packages with their own .git tree.
-packages/auctex
-packages/chess
+# External packages with their own .git tree [autogenerated].
+packages/auctex/
+packages/chess/
 packages/dash/
-packages/dismal
-packages/ergoemacs-mode
-packages/exwm
-packages/ntlm
+packages/dismal/
+packages/ergoemacs-mode/
+packages/exwm/
+packages/hyperbole/
+packages/let-alist/
+packages/ntlm/
 packages/omn-mode/
-packages/pabbrev
-packages/python
-packages/rudel
-packages/soap-client
-packages/w3
-packages/xelb
+packages/pabbrev/
+packages/python/
+packages/rudel/
+packages/soap-client/
+packages/w3/
+packages/xelb/
 
 # Testing file
 /archive
 *.log
-*.buildlog
\ No newline at end of file
+*.buildlog
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]