import os
import cdb
+from errno import *
def sort(l):
l = [] + l
del udb
map = {}
-def addlocal(p, l, forcep = False):
+def addlocal(u, p, l, forcep = False):
l = 'L' + l
if not os.path.exists(p):
if forcep:
f = open(p)
top = f.readline()
f.close()
- if len(top) > 0 and top[0] == '!':
+ if len(top) > 1 and top[0:2] == '#!':
map[l] = '-'
+ elif len(top) > 1 and top[0:2] == '#?':
+ name = u.name
+ if name[-1] == '-':
+ name = name[:-1]
+ map[l] = '?' + name
else:
map[l] = '+'
for k in sort(umap.keys()):
if not p.startswith(qm):
continue
ext = p[qmlen:]
- addlocal(os.path.join(u.home, p), u.name + ext)
+ addlocal(u, os.path.join(u.home, p), u.name + ext)
else:
- addlocal(os.path.join(u.home, qm), u.name, u.dash == '')
+ addlocal(u, 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])