-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathon_startup.py
56 lines (39 loc) · 951 Bytes
/
on_startup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
DEFAULT_ENV = {
'BOT_TOKEN': '',
'OWNER_ID': 724477101,
'DATABASE_NAME': 'TemplateBot',
'DATABASE_HOST': 'mongodb',
}
GUIDE_TEXT = """
You should set environment variables.
You can skip any variable, it will be taken from "[]"
"""
END_TEXT = """
Starting docker...
"""
FP = '.env'
def extract_vars(text):
_vars = {}
for string in text.strip().split('\n'):
key, value = string.split('=', maxsplit=1)
_vars[key] = value
return _vars
def dump_vars(_vars: dict):
text = ''
for key, value in _vars.items():
text += f'{key}={value}\n'
return text
print(GUIDE_TEXT)
try:
file = open(FP, mode='r')
except FileNotFoundError:
env = {}
else:
env = extract_vars(file.read())
for k, v in DEFAULT_ENV.items():
cur_v = env.get(k, v)
new_v = input(f'${k} [{cur_v}]: ') or cur_v
env[k] = new_v
file = open(FP, mode='w')
file.write(dump_vars(env))
print(END_TEXT)