summaryrefslogtreecommitdiff
path: root/Mailman/Archiver/pipermail.py
diff options
context:
space:
mode:
authorbwarsaw1998-11-04 23:50:46 +0000
committerbwarsaw1998-11-04 23:50:46 +0000
commitdf640bacf3de4c1684a77fe6e1442bd767bff092 (patch)
treef841d3ee126e5c7aa8d3cc83eb2ff72339c273bb /Mailman/Archiver/pipermail.py
parent5ce88dfc665ccec9db156c69cbf6ad84d89562b8 (diff)
downloadmailman-df640bacf3de4c1684a77fe6e1442bd767bff092.tar.gz
mailman-df640bacf3de4c1684a77fe6e1442bd767bff092.tar.zst
mailman-df640bacf3de4c1684a77fe6e1442bd767bff092.zip
Changes to avoid having to chmod files, which may fail.
Import open_ex() from Mailman.Utils and assign it to open in the module's globals, so this gets picked up before builtin open. Saves rewriting lots of occurances of open(), but could be confusing when reading a method. Hmmm... __version__ is appended to indicate that this is a Mailman-hacked versio of Pipermail. Use Mailman.Utils.mkdir() instead of os.mkdir(). All chmod()s are commented out, they are obsolete.
Diffstat (limited to 'Mailman/Archiver/pipermail.py')
-rw-r--r--Mailman/Archiver/pipermail.py29
1 files changed, 14 insertions, 15 deletions
diff --git a/Mailman/Archiver/pipermail.py b/Mailman/Archiver/pipermail.py
index 84de46c18..84a1b162a 100644
--- a/Mailman/Archiver/pipermail.py
+++ b/Mailman/Archiver/pipermail.py
@@ -1,11 +1,16 @@
-#!/usr/local/bin/python
+#! /usr/bin/env python
import os, sys, pickle, string, re
+from Mailman.Utils import mkdir, open_ex
+# TBD: ugly, ugly, ugly -baw
+open = open_ex
-__version__='0.05'
+__version__='0.05 (Mailman edition)'
VERSION=__version__
CACHESIZE=100 # Number of slots in the cache
+
+
msgid_pat=re.compile(r'(<.*>)')
def strip_separators(s):
"Remove quotes or parenthesization from a Message-ID string"
@@ -157,7 +162,7 @@ class T:
if errno!=2: raise os.error, errdata
else:
self.message('Creating archive directory '+self.basedir)
- os.mkdir(self.basedir, self.DIRMODE)
+ mkdir(self.basedir, self.DIRMODE)
# Try to load previously pickled state
try:
@@ -292,7 +297,7 @@ class T:
# Redirect sys.stdout
import sys
f=open(os.path.join(arcdir, i+self.INDEX_EXT), 'w')
- os.chmod(f.name, self.FILEMODE)
+## os.chmod(f.name, self.FILEMODE)
temp_stdout, sys.stdout=sys.stdout, f
self.write_index_header()
count=0
@@ -312,7 +317,7 @@ class T:
# Print the threaded index
self.message(" Thread")
temp_stdout, sys.stdout=sys.stdout, open(os.path.join(arcdir, 'thread' + self.INDEX_EXT), 'w')
- os.chmod(os.path.join(arcdir, 'thread' + self.INDEX_EXT), self.FILEMODE)
+## os.chmod(os.path.join(arcdir, 'thread' + self.INDEX_EXT), self.FILEMODE)
self.type='Thread'
self.write_index_header()
@@ -391,13 +396,13 @@ class T:
except os.error, errdata:
errno, errmsg=errdata
if errno==2:
- os.mkdir(archivedir, self.DIRMODE)
+ mkdir(archivedir, self.DIRMODE)
else: raise os.error, errdata
self.open_new_archive(i, archivedir)
# Write the HTML-ized article
f=open(os.path.join(archivedir, filename), 'w')
- os.chmod(os.path.join(archivedir, filename), self.FILEMODE)
+## os.chmod(os.path.join(archivedir, filename), self.FILEMODE)
temp_stdout, sys.stdout = sys.stdout, f
self.write_article_header(temp)
sys.stdout.writelines(temp.body)
@@ -537,14 +542,8 @@ class BSDDBdatabase(Database):
self.__closeIndices()
# print 'opening indices for [%s]' % (repr(archive),)
arcdir=os.path.join(self.basedir, 'database')
-## try: os.mkdir(arcdir, 0700)
-## except os.error: pass
- uo = os.umask(0)
- try:
- try: os.mkdir(arcdir)
- except os.error: pass
- finally:
- os.umask(ou)
+ try: mkdir(arcdir)
+ except os.error: pass
for i in ['date', 'author', 'subject', 'article', 'thread']:
t=bsddb.btopen(os.path.join(arcdir, archive+'-'+i), 'c')
setattr(self, i+'Index', t)