#!/usr/bin/env python

import smtplib
import sys
from email.mime.text import MIMEText

from argparse import ArgumentParser, ArgumentError, FileType

if __name__ == '__main__':
  parser = ArgumentParser(description="Deprecated: please use json2email instead")

  parser.add_argument('--plain', '-p', type=FileType('r'),
                      help='Template with plain text template for email')

  parser.add_argument('--subject', '-s', type=str,
                     help='Subject line for email')

  parser.add_argument('--to', '-t', nargs='+', type=str,
                      help='To: recipient of email')

  parser.add_argument('--from', '-f', dest='sender', type=str,
                      help='From: sender of email')

  parser.add_argument('--server', type=str, default='localhost',
                      help='SMTP server')

  parser.add_argument('--error', '-e', type=str, nargs='*',
                      help='Email address to send errors to (if any)')

  parser.add_argument('--noop', '-n', action='store_true', default=False,
                      help='Noop: if set, prints email to stdout instead of sending')

  parser.add_argument('--json', '-j', type=str,
                      help="Json formated data file (use '-' for stdin)")

  args = parser.parse_args()

  print >> sys.stderr, "jsontoemail is deprecated.  Please use json2email"
  
  if args.noop:
    exit(1)

  text = """\
Warning: You are getting this because someone tried to send you an email using jsontoemail.

jsontoemail has been renamed to json2email and so won't be getting any updates.  Please ask the sender of this email to update their packages accordingly.

Apologies for any inconvenience,

Ben
https://github.com/sanger-pathogens/json2email
""" 
  msg = MIMEText(text)
  msg['Subject'] = "[WARNING - broken job] %s" % args.subject
  msg['From'] = args.sender

  if args.error:
    recipients = args.error
  else:
    recipients = args.to

  msg['To'] = ', '.join(recipients)

  server = smtplib.SMTP(args.server)
  server.sendmail(args.sender, recipients, msg.as_string()) 

  exit(1)
