Add installation.py for generating config.
This commit is contained in:
parent
6ba6a9436b
commit
c5be1882f8
|
@ -0,0 +1,63 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import bcrypt
|
||||
import json
|
||||
|
||||
|
||||
def get_number(prompt):
|
||||
while True:
|
||||
try:
|
||||
num = int(input(prompt))
|
||||
return num
|
||||
except ValueError:
|
||||
print("Not a number!\n")
|
||||
|
||||
|
||||
def get_boolean(prompt, default):
|
||||
string = input(prompt).lower()
|
||||
if string in ["y", "yes", "true", "t", "1"]:
|
||||
return True
|
||||
elif string in ["n", "no", "false", "f", "0"]:
|
||||
return False
|
||||
return default
|
||||
|
||||
|
||||
config = {}
|
||||
|
||||
# Master password
|
||||
print("""
|
||||
Enter master password. Master password is the password you provide to your bus
|
||||
factor. When the master password is entered, The Long Night will send messages
|
||||
to you via all the configured mediums. If you do not respond within 2 days
|
||||
(configurable), The Long Night will add the supplied key as an authorized key
|
||||
for the user it is running as.
|
||||
""")
|
||||
password = input("> ").encode()
|
||||
config["password"] = bcrypt.hashpw(password, bcrypt.gensalt()).decode()
|
||||
|
||||
print("\nEnter number of days to wait before adding the ssh key\n")
|
||||
config["days"] = get_number("> ")
|
||||
|
||||
|
||||
# SSH key
|
||||
print("\nEnter ssh key to add\n")
|
||||
config["ssh_key"] = input("> ")
|
||||
|
||||
print("\nConfiguring mediums for contact when the master password is entered.")
|
||||
|
||||
# Telegram
|
||||
print("\nDo you want to enable Telegram messages?\n")
|
||||
config["telegram"] = {}
|
||||
tg_enable = get_boolean("Y/n ", True)
|
||||
config["telegram"]["enabled"] = tg_enable
|
||||
|
||||
if tg_enable:
|
||||
print("\nEnter bot token\n")
|
||||
config["telegram"]["bot_token"] = input("> ")
|
||||
print("\nEnter userid\n")
|
||||
config["telegram"]["user_id"] = get_number("> ")
|
||||
|
||||
print("\nStoring config.")
|
||||
with open('config.json', 'w') as f:
|
||||
json.dump(config, f)
|
||||
print("Stored config.")
|
Loading…
Reference in New Issue