Files
notifications-admin/domains.py
2019-02-12 16:59:13 +00:00

53 lines
1.4 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import yaml
from itertools import chain
from operator import itemgetter
from sys import argv
from app.utils import AgreementInfo
_dir_path = os.path.dirname(os.path.realpath(__file__))
if len(argv) < 2:
raise TypeError('Must specify `orgs` or `domains` as the first argument to this script')
with open('{}/app/domains.yml'.format(_dir_path)) as source:
data = yaml.load(source)
for domain, details in data.items():
if isinstance(details, dict):
# Were looking at the canonical domain
data[domain]['domains'] = [domain]
for domain, details in data.items():
if isinstance(details, str):
# This is an alias, lets add it to the canonical domain
data[AgreementInfo(domain).canonical_domain]['domains'].append(domain)
out_data = [
details for domain, details in data.items()
if isinstance(details, dict)
]
if argv[1] == 'orgs':
print(yaml.dump(out_data)) # noqa
elif argv[1] == 'domains':
print( # noqa
sorted(
set(
chain.from_iterable(
map(
itemgetter('domains'), out_data
)
)
)
)
)
else:
raise TypeError('Must specify `orgs` or `domains` as the first argument to this script')