summaryrefslogtreecommitdiff
path: root/Mailman/aliases.py
diff options
context:
space:
mode:
authormailman1998-02-27 16:10:31 +0000
committermailman1998-02-27 16:10:31 +0000
commit46d178b98b5ae3c6b164258bdba01b9598cc73dc (patch)
tree26641a348a8a51a120524bebc3e347488901f738 /Mailman/aliases.py
parent34424e63e8008c267dd7eeaf15c6453e246ec966 (diff)
downloadmailman-46d178b98b5ae3c6b164258bdba01b9598cc73dc.tar.gz
mailman-46d178b98b5ae3c6b164258bdba01b9598cc73dc.tar.zst
mailman-46d178b98b5ae3c6b164258bdba01b9598cc73dc.zip
Initial revision
Diffstat (limited to 'Mailman/aliases.py')
-rw-r--r--Mailman/aliases.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/Mailman/aliases.py b/Mailman/aliases.py
new file mode 100644
index 000000000..8764912a8
--- /dev/null
+++ b/Mailman/aliases.py
@@ -0,0 +1,41 @@
+# This is mailman's interface to the alias database.
+
+# TODO:
+
+# Write a wrapper program w/ root uid that allows the mailman user
+# only to update the alias database.
+
+import string
+_file = open('/etc/aliases', 'r')
+_lines = _file.readlines()
+aliases = {}
+_cur_line = None
+
+def _AddAlias(line):
+ line = string.strip(line)
+ if not line:
+ return
+ colon_index = string.find(line, ":")
+ if colon_index < 1:
+ raise "SyntaxError", "Malformed /etc/aliases file"
+ alias = string.lower(string.strip(line[:colon_index]))
+ rest = string.split(line[colon_index+1:], ",")
+ rest = map(string.strip, rest)
+ aliases[alias] = rest
+
+for _line in _lines:
+ if _line[0] == '#':
+ continue
+ if _line[0] == ' ' or _line[0] == '\t':
+ _cur_line = _cur_line + _line
+ continue
+ if _cur_line:
+ _AddAlias(_curline)
+ _cur_line = _line
+
+def GetAlias(str):
+ str = string.lower(str)
+ if not aliases.has_key(str):
+ raise KeyError, "No such alias"
+ return aliases[str]
+