aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Moellmann2001-10-19 16:33:45 +0000
committerGerd Moellmann2001-10-19 16:33:45 +0000
commit74499542df64eb8041b4de71eb091230e52c0414 (patch)
tree7bcc81f12bbde9aff181b92e50275c95f6f0d978
parent8f9495e70ec6569482cae52d8309fb25080ccf1f (diff)
downloademacs-74499542df64eb8041b4de71eb091230e52c0414.tar.gz
emacs-74499542df64eb8041b4de71eb091230e52c0414.zip
*** empty log message ***
-rw-r--r--admin/ChangeLog2
-rw-r--r--admin/README3
-rw-r--r--admin/admin.el89
3 files changed, 93 insertions, 1 deletions
diff --git a/admin/ChangeLog b/admin/ChangeLog
index 034f57dae1d..9323c1f5194 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,5 +1,7 @@
12001-10-19 Gerd Moellmann <gerd@gnu.org> 12001-10-19 Gerd Moellmann <gerd@gnu.org>
2 2
3 * admin.el: New file.
4
3 * build-configs: Add --help option. Add support for building 5 * build-configs: Add --help option. Add support for building
4 in arbitrary source trees. 6 in arbitrary source trees.
5 7
diff --git a/admin/README b/admin/README
index cca682e5aaf..bf3663aab38 100644
--- a/admin/README
+++ b/admin/README
@@ -5,8 +5,9 @@ what you do when using them.
5 5
6Brief description of scripts found here: 6Brief description of scripts found here:
7 7
8admin.el utilities for setting version numbers and alike
8alloc-color.c a utility program that allocates a given number of 9alloc-color.c a utility program that allocates a given number of
9 colors on X. May be used it to debug Emacs with 10 colors on X. Can be used to debug Emacs with
10 dense colormaps (PseudoColor). 11 dense colormaps (PseudoColor).
11build-configs build Emacs in various configurations 12build-configs build Emacs in various configurations
12check-doc-strings check doc strings against documentation 13check-doc-strings check doc strings against documentation
diff --git a/admin/admin.el b/admin/admin.el
new file mode 100644
index 00000000000..a31d8bcc853
--- /dev/null
+++ b/admin/admin.el
@@ -0,0 +1,89 @@
1;;; admin.el --- utilities for Emacs administration
2
3;; Copyright (C) 2001 Free Software Foundation, Inc.
4
5;; This file is part of GNU Emacs.
6
7;; GNU Emacs is free software; you can redistribute it and/or modify
8;; it under the terms of the GNU General Public License as published by
9;; the Free Software Foundation; either version 2, or (at your option)
10;; any later version.
11
12;; GNU Emacs is distributed in the hope that it will be useful,
13;; but WITHOUT ANY WARRANTY; without even the implied warranty of
14;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;; GNU General Public License for more details.
16
17;; You should have received a copy of the GNU General Public License
18;; along with GNU Emacs; see the file COPYING. If not, write to the
19;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20;; Boston, MA 02111-1307, USA.
21
22;;; Commentary:
23
24;; add-release-log add ``Version X released'' change log entries
25;; set-version change Emacs version number in source tree.
26
27;;; Code:
28
29(defun process-lines (program &rest args)
30 "Execute PROGRAM with ARGS, returning its output as a list of lines.
31Signal an error if the program returns with a non-zero exit status."
32 (with-temp-buffer
33 (let ((status (apply 'call-process program nil (current-buffer) nil args)))
34 (unless (eq status 0)
35 (error "%s exited with status %s" program status))
36 (goto-char (point-min))
37 (let (lines)
38 (while (not (eobp))
39 (setq lines (cons (buffer-substring-no-properties
40 (line-beginning-position)
41 (line-end-position))
42 lines))
43 (forward-line 1))
44 (nreverse lines)))))
45
46
47(defun add-release-logs (root version)
48 "Add \"Version VERSION released.\" change log entries in ROOT.
49Root must be the root of an Emacs source tree."
50 (interactive "DEmacs root directory: \nNVersion number: ")
51 (unless (file-exists-p (expand-file-name "src/emacs.c" root))
52 (error "%s doesn't seem to be the root of an Emacs source tree" root))
53 (let* ((logs (process-lines "find" root "-name" "ChangeLog"))
54 (entry (format "%s %s <%s>\n\n\t* Version %s released.\n\n"
55 (format-time-string "%Y-%m-%d")
56 (user-full-name) user-mail-address version)))
57 (dolist (log logs)
58 (unless (or (string-match "/gnus/" log)
59 (string-match "/lispref/" log))
60 (find-file log)
61 (goto-char (point-min))
62 (insert entry)))))
63
64
65(defun set-version-in-file (root file version rx)
66 (find-file (expand-file-name file root))
67 (goto-char (point-min))
68 (unless (re-search-forward rx nil t)
69 (error "Version not found in %s" file))
70 (replace-match (format "%s" version) nil nil nil 1))
71
72
73(defun set-version (root version)
74 "Set Emacs version to VERSION in relevant files under ROOT.
75Root must be the root of an Emacs source tree."
76 (interactive "DEmacs root directory: \nNVersion number: ")
77 (unless (file-exists-p (expand-file-name "src/emacs.c" root))
78 (error "%s doesn't seem to be the root of an Emacs source tree" root))
79 (set-version-in-file root "lisp/version.el" version
80 (rx (and "emacs-version" (0+ space)
81 ?\" (submatch (1+ (not (in ?\")))) ?\")))
82 (set-version-in-file root "README" version
83 (rx (and "version" (1+ space)
84 (submatch (1+ (in "0-9."))))))
85 (set-version-in-file root "man/emacs.texi" version
86 (rx (and "EMACSVER" (1+ space)
87 (submatch (1+ (in "0-9.")))))))
88
89;; admin.el ends here.