#!/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(" --html\n") write(" -h\n") write(" message body on stdin\n") sys.exit(retval) class Options: """Hold and vet command line options.""" def __init__(self): """Init.""" self.subject = "No subject given" self.only_if_nonzero = False self.from_address = "strombrg@gmail.com" self.to_address = "strombrg@gmail.com" self.ignore_content = None self.account = "strombrg@gmail.com" self.is_html = False while sys.argv[1:]: if sys.argv[1] == "-s": self.subject = sys.argv[2] del sys.argv[1] elif sys.argv[1] == "-a": self.account = sys.argv[2] del sys.argv[1] elif sys.argv[1] == "-Z": with open(sys.argv[2], "r") as file_: self.ignore_content = file_.read() del sys.argv[1] elif sys.argv[1] == "-z": self.only_if_nonzero = True elif sys.argv[1] == "--html": self.is_html = True elif sys.argv[1] == "-t": self.to_address = sys.argv[2] del sys.argv[1] elif sys.argv[1] == "-f": self.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] def main(): """Start the ball rolling.""" options = Options() body = sys.stdin.read() if options.only_if_nonzero and len(options.body) == 0: sys.exit(0) if options.ignore_content is not None and options.ignore_content == options.body: sys.exit(0) mailer = mailer_mod.Mailer(options.account) mailer.send( from_address=options.from_address, to_address=options.to_address, subject=options.subject, body=body, is_html=options.is_html, ) main()