#!/usr/bin/python

import os
import sys
import gettext
import locale

from softwareproperties.SoftwareProperties import SoftwareProperties
from optparse import OptionParser
from gettext import gettext as _

if __name__ == "__main__":
    try:
        locale.setlocale(locale.LC_ALL, "")
    except:
        pass
    usage = """usage: %prog sourceline

%prog is a script for adding apt sources.list entries. 
It can be used to add any repository and also provides a shorthand 
synatax for Launchpad PPA (Personal Package Archive) repositories via
ppa:user/repository
"""
    parser = OptionParser(usage)
    # FIXME: provide a --sources-list-file= option that 
    #        puts the line into a specific file in sources.list.d
    (options, args) = parser.parse_args()

    if os.geteuid() != 0:
        print _("Error: must run as root")
        sys.exit(1)

    if (len(args) != 1):
        print _("Error: need a repository as argument")
        sys.exit(1)

    # force new ppa file to be 644 (LP: #399709)
    os.umask(0022)

    sp = SoftwareProperties(options)	
    line = args[0]
    if not sp.add_source_from_line(line):
        print _("Error: '%s' invalid" % line)
        sys.exit(1)
    sp.sourceslist.save()
