#!/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()