diff options
| author | mailman | 1998-02-27 16:10:31 +0000 |
|---|---|---|
| committer | mailman | 1998-02-27 16:10:31 +0000 |
| commit | 46d178b98b5ae3c6b164258bdba01b9598cc73dc (patch) | |
| tree | 26641a348a8a51a120524bebc3e347488901f738 /Mailman/aliases.py | |
| parent | 34424e63e8008c267dd7eeaf15c6453e246ec966 (diff) | |
| download | mailman-46d178b98b5ae3c6b164258bdba01b9598cc73dc.tar.gz mailman-46d178b98b5ae3c6b164258bdba01b9598cc73dc.tar.zst mailman-46d178b98b5ae3c6b164258bdba01b9598cc73dc.zip | |
Initial revision
Diffstat (limited to 'Mailman/aliases.py')
| -rw-r--r-- | Mailman/aliases.py | 41 |
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] + |
