[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] elpa-admin 3b5fe95 029/357: * admin/archive-contents.el: New file
From: |
Stefan Monnier |
Subject: |
[elpa] elpa-admin 3b5fe95 029/357: * admin/archive-contents.el: New file. |
Date: |
Thu, 10 Dec 2020 18:06:09 -0500 (EST) |
branch: elpa-admin
commit 3b5fe95c8c710df6e31f0bdb8a3200c7d55ad29d
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
* admin/archive-contents.el: New file.
* packages/rainbow-mode-readme.txt:
* packages/js2-mode-readme.txt: Auto-update from the commentary.
* packages/js2-mode-20090814.el: Capitalize the description.
* packages/debbugs-0.1/debbugs.el: Require cl since it uses `case'.
(debbugs-get-bugs): Fix up typo.
* packages/company-0.5/company-gtags.el
(company-gtags-gnu-global-program-name): Pass the "when" argument.
* packages/auctex-11.86/auctex-pkg.el: Capitalize the description.
* packages/archive-contents: Almost auto-regenerate.
---
admin/archive-contents.el | 102 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 102 insertions(+)
diff --git a/admin/archive-contents.el b/admin/archive-contents.el
new file mode 100644
index 0000000..75c75e7
--- /dev/null
+++ b/admin/archive-contents.el
@@ -0,0 +1,102 @@
+;;; archive-contents.el --- Auto-generate the `archive-contents' file -*-
lexical-binding: t -*-
+
+;; Copyright (C) 2011 Free Software Foundation, Inc
+
+;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;; Code:
+
+(require 'lisp-mnt)
+
+(defun batch-make-archive-contents ()
+ (let ((packages '(1))) ;I think this is the format-version.
+ (dolist (file (directory-files default-directory))
+ (pcase file
+ ((or `"." `".." `"elpa.rss" `"archive-contents") nil)
+ ((pred file-directory-p)
+ (if (not (string-match "-[0-9.]+\\'" file))
+ (message "Unknown package directory name format %s" file)
+ (let* ((pkg (substring file 0 (match-beginning 0)))
+ (vers (substring file (1+ (match-beginning 0))))
+ (exp
+ (with-temp-buffer
+ (insert-file-contents
+ (expand-file-name (concat pkg "-pkg.el") file))
+ (goto-char (point-min))
+ (read (current-buffer)))))
+ (copy-file (expand-file-name "README" file)
+ (concat pkg "-readme.txt")
+ 'ok-if-already-exists)
+ (unless (equal (nth 1 exp) pkg)
+ (message "Package name %s doesn't match file name %s"
+ (nth 1 exp) file))
+ (unless (equal (nth 2 exp) vers)
+ (message "Package version %s doesn't match file name %s"
+ (nth 2 exp) file))
+ (push (cons (intern pkg)
+ (vector (version-to-list vers)
+ nil ;??
+ (nth 3 exp)
+ 'tar))
+ packages))))
+ ((pred (string-match "\\.el\\'"))
+ (if (not (string-match "-\\([0-9.]+\\)\\.el\\'" file))
+ (message "Unknown package file name format %s" file)
+ (let* ((pkg (substring file 0 (match-beginning 0)))
+ (vers (match-string 1 file))
+ (desc
+ (with-temp-buffer
+ (insert-file-contents file)
+ (goto-char (point-min))
+ (if (not (looking-at ";;;.*---[
\t]*\\(.*\\)\\(-\\*-.*-\\*-[ \t]*\\)?$"))
+ (message "Incorrectly formatted header in %s" file)
+ (prog1 (match-string 1)
+ (let ((commentary (lm-commentary)))
+ (with-current-buffer (find-file-noselect
+ (concat pkg "-readme.txt"))
+ (erase-buffer)
+ (emacs-lisp-mode)
+ (insert commentary)
+ (goto-char (point-min))
+ (while (looking-at ";*[ \t]*\\(commentary[:
\t]*\\)?\n")
+ (delete-region (match-beginning 0)
+ (match-end 0)))
+ (uncomment-region (point-min) (point-max))
+ (goto-char (point-max))
+ (while (progn (forward-line -1)
+ (looking-at "[ \t]*\n"))
+ (delete-region (match-beginning 0)
+ (match-end 0)))
+ (save-buffer))))))))
+ (push (cons (intern pkg)
+ (vector (version-to-list vers)
+ nil ;??
+ desc
+ 'single))
+ packages))))
+ ((pred (string-match "\\.elc\\'")) nil)
+ ((pred (string-match "-readme\\.txt\\'")) nil)
+ (t
+ (message "Unknown file %s" file))))
+ (with-current-buffer (find-file-noselect "archive-contents")
+ (erase-buffer)
+ (pp (nreverse packages) (current-buffer))
+ (save-buffer))))
+
+(provide 'archive-contents)
+;;; archive-contents.el ends here
- [elpa] branch elpa-admin created (now 311d819), Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 22e8332 018/357: Nope changing the name made things worse., Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 3b5fe95 029/357: * admin/archive-contents.el: New file.,
Stefan Monnier <=
- [elpa] elpa-admin 50fc47c 021/357: Update email addresses., Stefan Monnier, 2020/12/10
- [elpa] elpa-admin c2674b7 012/357: exclude html files from svn, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin dbbb145 035/357: Clearer reference to the license text, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin d9cdf2a 008/357: Added comment about installing with multiple emacsen., Stefan Monnier, 2020/12/10
- [elpa] elpa-admin da5ff0a 003/357: Added to CVS (formerly not under RCS)., Stefan Monnier, 2020/12/10
- [elpa] elpa-admin ae7a3df 034/357: Copy Emacs wiki page's content to new README file, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 051b643 041/357: README: Add a section about source code repository, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 5fefd44 048/357: Update archive-contents to add package versions from contents., Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 14ac0ef 040/357: Merge branch 'action', Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 18bfa15 069/357: Add coffee-mode., Stefan Monnier, 2020/12/10