"""Start the IRC bot via Django management command."""
import logging
import signal

from django.core.management import BaseCommand

from ircbot.bot import IRCBot

log = logging.getLogger('ircbot')


class Command(BaseCommand):
    """Provide the command to start the IRC bot.

    This will run until the bot disconnects and shuts down.
    """

    help = "Start the IRC bot"

    def add_arguments(self, parser):
        """Add arguments to the bot startup."""
        parser.add_argument('server_name')

    def handle(self, *args, **options):
        """Start the IRC bot and spin forever."""
        self.stdout.write(self.style.NOTICE(f"Starting up {options['server_name']} bot"))
        irc = IRCBot(options['server_name'])
        signal.signal(signal.SIGINT, irc.sigint_handler)
        irc.start()