diff lisp/blessmail.el @ 217:d44af0c54775 r20-4b7

Import from CVS: tag r20-4b7
author cvs
date Mon, 13 Aug 2007 10:08:34 +0200
parents
children 308d34e9f07d
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/blessmail.el	Mon Aug 13 10:08:34 2007 +0200
@@ -0,0 +1,71 @@
+;;; blessmail.el --- Decide whether movemail needs special privileges.
+
+;; Copyright (C) 1994 Free Software Foundation, Inc.
+
+;; Maintainer: FSF
+;; Keywords: internal
+
+;; This file is part of XEmacs.
+
+;; XEmacs 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 2, or (at your option)
+;; any later version.
+
+;; XEmacs 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 XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Synched up with: FSF 19.34.
+
+;;; Commentary:
+
+;; This is loaded into a bare Emacs to create the blessmail script,
+;; which (on systems that need it) is used during installation
+;; to give appropriate permissions to movemail.
+;;
+;; It has to be done from lisp in order to be sure of getting the
+;; correct value of rmail-spool-directory.
+
+;;; Code:
+
+;; These are no longer needed because we run this in emacs instead of temacs.
+;; (message "Using load-path %s" load-path)
+;; (load "paths.el")
+;; It is not safe to load site-init.el here, because it might have things in it
+;; that won't load properly unless all the rest of Emacs is loaded.
+
+(let ((dirname (directory-file-name rmail-spool-directory))
+      linkname attr modes)
+  ;; Check for symbolic link
+  (while (setq linkname (file-symlink-p dirname))
+    (setq dirname (if (file-name-absolute-p linkname)
+		      linkname
+		    (concat (file-name-directory dirname) linkname))))
+  (insert "#!/bin/sh\n")
+  (setq attr (file-attributes dirname))
+  (if (not (eq t (car attr)))
+      (insert (format "echo %s is not a directory\n" rmail-spool-directory))
+    (setq modes (nth 8 attr))
+    (cond ((= ?w (aref modes 8))
+	   ;; Nothing needs to be done.
+	   )
+	  ((= ?w (aref modes 5))
+	   (insert "chgrp " (number-to-string (nth 3 attr))
+		   " $* && chmod g+s $*\n"))
+	  ((= ?w (aref modes 2))
+	   (insert "chown " (number-to-string (nth 2 attr))
+		   " $* && chmod u+s $*\n"))
+	  (t
+	   (insert "chown root $* && chmod u+s $*\n"))))
+  (insert "echo mail directory = " dirname "\n"))
+(write-region (point-min) (point-max) "blessmail")
+(kill-emacs)
+
+;;; blessmail.el ends here