#!/usr/bin/python
# Massive Bug Filer
# Copyright (C) 2009, Canonical, Ltd.
# License: GPLv3
# Author: Soren Hansen <soren@ubuntu.com>
#
# Opens a new bug in LP and then closes it via dch
#
import subprocess
import sys
import lpl_common

if len(sys.argv) > 4:
    print "usage: %s [pkg_name [short_desc [long_desc]]]" % (sys.argv[0],)
    sys.exit(1)

if not len(sys.argv) > 1:
    print "Package name: "
    pkg_name = sys.stdin.readline().strip()
else:
    pkg_name = sys.argv[1]

if not len(sys.argv) > 2:
    print "Short description: "
    short_desc = sys.stdin.readline().strip()
else:
    short_desc = sys.argv[2]

if not len(sys.argv) > 3:
    print "Long description (end with a line with only a '.' on it): "
    long_desc_array = []
    while True:
        line = sys.stdin.readline().strip()
        if line == '.':
            break
        else:
            long_desc_array.append(line)
    long_desc = '\n'.join(long_desc_array)
else:
    long_desc = sys.argv[3]

print '''Package: ubuntu/%s
Subject: %s
  %s
''' % (pkg_name, short_desc, '\n  '.join(long_desc.split('\n')))

print '\n\nPress return to submit. To abort, hit CTRL-C now.'
sys.stdin.readline()

lp = lpl_common.connect()
pkg = lp.distributions['ubuntu'].getSourcePackage(name = pkg_name)
bug = lp.bugs.createBug(description=long_desc, title=short_desc, target=pkg)
subprocess.call(['dch','Fix "%s" (LP: #%d)' % (short_desc,bug.id)])
