Make Red shutdown when resetting token (#3358)

* Update __main__.py

* Update __main__.py
This commit is contained in:
jack1142 2020-01-13 02:26:01 +01:00 committed by Michael H
parent 7bdd177713
commit 088360ec51

View File

@ -16,6 +16,7 @@ import sys
from argparse import Namespace from argparse import Namespace
from copy import deepcopy from copy import deepcopy
from pathlib import Path from pathlib import Path
from typing import NoReturn
import discord import discord
@ -287,7 +288,7 @@ def handle_edit(cli_flags: Namespace):
sys.exit(0) sys.exit(0)
async def run_bot(red: Red, cli_flags: Namespace): async def run_bot(red: Red, cli_flags: Namespace) -> NoReturn:
driver_cls = drivers.get_driver_class() driver_cls = drivers.get_driver_class()
@ -334,6 +335,7 @@ async def run_bot(red: Red, cli_flags: Namespace):
sys.exit(0) sys.exit(0)
try: try:
await red.start(token, bot=True, cli_flags=cli_flags) await red.start(token, bot=True, cli_flags=cli_flags)
# This raises SystemExit in normal use at close
except discord.LoginFailure: except discord.LoginFailure:
log.critical("This token doesn't seem to be valid.") log.critical("This token doesn't seem to be valid.")
db_token = await red._config.token() db_token = await red._config.token()
@ -341,6 +343,8 @@ async def run_bot(red: Red, cli_flags: Namespace):
if confirm("\nDo you want to reset the token?"): if confirm("\nDo you want to reset the token?"):
await red._config.token.set("") await red._config.token.set("")
print("Token has been reset.") print("Token has been reset.")
sys.exit(0)
sys.exit(1)
def handle_early_exit_flags(cli_flags: Namespace): def handle_early_exit_flags(cli_flags: Namespace):