qmail-valid-addresses: Cope with missing files.
[qmail] / qmail-valid-addresses
index b77be52..9821394 100644 (file)
@@ -2,6 +2,7 @@
 
 import os
 import cdb
+from errno import *
 
 def sort(l):
   l = [] + l
@@ -66,16 +67,27 @@ for k in sort(umap.keys()):
   else:
     addlocal(os.path.join(u.home, qm), u.name, u.dash == '')
 
-for dom in open('control/locals'):
-  if len(dom) and dom[-1] == '\n':
-    dom = dom[:-1]
-  map['@' + dom] = ''
+me = open('control/me').readline()
 
-for v in open('control/virtualdomains'):
-  if len(v) and v[-1] == '\n':
-    v = v[:-1]
-  (addr, pre) = v.split(':', 2)
-  map['V' + addr] = pre
+try:
+  for dom in open('control/locals'):
+    if len(dom) and dom[-1] == '\n':
+      dom = dom[:-1]
+    map['@' + dom] = ''
+except IOError, exc:
+  if exc.errno != ENOENT:
+    raise
+  map['@' + me] = ''
+
+try:
+  for v in open('control/virtualdomains'):
+    if len(v) and v[-1] == '\n':
+      v = v[:-1]
+    (addr, pre) = v.split(':', 2)
+    map['V' + addr] = pre
+except IOError, exc:
+  if exc.errno != ENOENT:
+    raise
 
 for l in sort(map.keys()):
   print '%s:%s' % (l, map[l])