|
@@ -12,23 +12,30 @@ parser.add_argument('--etcd-host', help='Host to connect to etcd on', default='e
|
12
|
12
|
parser.add_argument('--etcd-prefix', help='Prefix to use when retrieving keys from etcd', default='/docker')
|
13
|
13
|
args = parser.parse_args()
|
14
|
14
|
|
15
|
|
-domains = defaultdict(set)
|
16
|
15
|
fetcher = Fetcher(args.etcd_host, args.etcd_port, args.etcd_prefix)
|
17
|
|
-for container, values in fetcher.get_label('com.chameth.vhost').items():
|
18
|
|
- parts = values.split(',')
|
19
|
|
- domains[parts[0].strip()] |= set([] if len(parts) == 1 else parts[1:])
|
20
|
|
-
|
21
|
|
-with open('/letsencrypt/domains.txt.new', 'w') as f:
|
22
|
|
- for domain, alts in domains.items():
|
23
|
|
- f.write(domain)
|
24
|
|
- if len(alts):
|
25
|
|
- f.write(' ' + ' ' .join(alts))
|
26
|
|
- f.write('\n')
|
27
|
|
-
|
28
|
|
-try:
|
29
|
|
- os.remove('/letsencrypt/domains.txt')
|
30
|
|
-except OSError:
|
31
|
|
- pass
|
32
|
|
-
|
33
|
|
-os.rename('/letsencrypt/domains.txt.new', '/letsencrypt/domains.txt')
|
|
16
|
+
|
|
17
|
+while True:
|
|
18
|
+ domains = defaultdict(set)
|
|
19
|
+ for container, values in fetcher.get_label('com.chameth.vhost').items():
|
|
20
|
+ parts = values.split(',')
|
|
21
|
+ domains[parts[0].strip()] |= set([] if len(parts) == 1 else parts[1:])
|
|
22
|
+
|
|
23
|
+ with open('/letsencrypt/domains.txt.new', 'w') as f:
|
|
24
|
+ print('Writing domains.txt...')
|
|
25
|
+ for domain, alts in domains.items():
|
|
26
|
+ print('%s [%s]' % (domain, ', '.join(alts)))
|
|
27
|
+ f.write(domain)
|
|
28
|
+ if len(alts):
|
|
29
|
+ f.write(' ' + ' ' .join(alts))
|
|
30
|
+ f.write('\n')
|
|
31
|
+
|
|
32
|
+ try:
|
|
33
|
+ os.remove('/letsencrypt/domains.txt')
|
|
34
|
+ except OSError:
|
|
35
|
+ pass
|
|
36
|
+
|
|
37
|
+ os.rename('/letsencrypt/domains.txt.new', '/letsencrypt/domains.txt')
|
|
38
|
+ print('Done writing domains.txt')
|
|
39
|
+
|
|
40
|
+ fetcher.wait_for_update()
|
34
|
41
|
|