#!/usr/bin/env python3

"""Mail to Dan."""

import os
import sys

sys.path.insert(0, os.path.expanduser('~/lib'))
sys.path.insert(0, '/usr/local/lib')

import mailer as mailer_mod  # noqa: ignore-E402


def usage(retval):
    """Output a usage message."""
    if retval == 0:
        write = sys.stderr.write
    else:
        write = sys.stderr.write
    write('Usage: %s\n' % sys.argv[0])
    write('    -s subject\n')
    write('    -a account\n')
    write('    -z\n')
    write('    -Z /ignore/file\n')
    write('    -f from_address\n')
    write('    -t to_address\n')
    write('    -h\n')
    write('    message body on stdin\n')
    sys.exit(retval)


def main():
    """Start the ball rolling."""
    subject = 'No subject given'
    only_if_nonzero = False
    from_address = 'strombrg@gmail.com'
    to_address = 'strombrg@gmail.com'
    ignore_content = None
    account = 'strombrg@gmail.com'

    while sys.argv[1:]:
        if sys.argv[1] == '-s':
            subject = sys.argv[2]
            del sys.argv[1]
        elif sys.argv[1] == '-a':
            account = sys.argv[2]
            del sys.argv[1]
        elif sys.argv[1] == '-Z':
            with open(sys.argv[2], 'r') as file_:
                ignore_content = file_.read()
            del sys.argv[1]
        elif sys.argv[1] == '-z':
            only_if_nonzero = True
        elif sys.argv[1] == '-t':
            to_address = sys.argv[2]
            del sys.argv[1]
        elif sys.argv[1] == '-f':
            from_address = sys.argv[2]
            del sys.argv[1]
        elif sys.argv[1] in ['-h', '--help']:
            usage(0)
        else:
            sys.stderr.write('%s: Unrecognized option: %s\n' % (sys.argv[0], sys.argv[1]))
            usage(1)
        del sys.argv[1]

    body = sys.stdin.read()
    if only_if_nonzero and len(body) == 0:
        sys.exit(0)

    if ignore_content is not None and ignore_content == body:
        sys.exit(0)

    mailer = mailer_mod.Mailer(account)

    mailer.send(
        from_address=from_address,
        to_address=to_address,
        subject=subject,
        body=body,
        )


main()