#!/usr/bin/python import sys import os import gettext import apt import re from LanguageSelector.LanguageSelector import * from LanguageSelector.CheckLanguageSupport import * from optparse import OptionParser from gettext import gettext as _ if __name__ == "__main__": parser = OptionParser() parser.add_option("-l", "--language", default=None, help=_("target language code")) parser.add_option("-d", "--datadir", default="/usr/share/language-selector/", help=_("alternative datadir")) parser.add_option("-p", "--package", default=None, help=_("check for the given package(s) only -- separate packagenames by comma")) parser.add_option("-a", "--all", action='store_true', default=False, help=_("check all available languages")) parser.add_option("--show-installed", action='store_true', default=False, help=_("show installed packages as well as missing ones")) (options, args) = parser.parse_args() # sanity check for language code if (options.language and not re.match('^([a-z]{2,3}(_[A-Z]{2})?(@[a-z]+)?|(zh-han[st]))$', options.language)): print ("Error: Unsupported language code format.\n\ Supported formats: 'll' or 'lll'\n\ 'll_CC' or 'lll_CC'\n\ 'll@variant' or 'lll@variant'\n\ 'll_CC@variant' or 'lll_CC@variant'\n\ Also supported are 'zh-hans' and 'zh-hant'.") sys.exit(1) cl = CheckLanguageSupport(options.datadir) try: packages = [] if options.package: packages = options.package.split(',') missing = cl.getMissingPackages(language=options.language, all=options.all, packages=packages, showInstalled=options.show_installed) if missing: print (' '.join(sorted(missing))) except SoftwareIndexBroken: print ("%s\n%s" % ( _("Software database is broken"), _("It is impossible to install or remove any software. " "Please use the package manager \"Synaptic\" or run " "\"sudo apt-get install -f\" in a terminal to fix " "this issue at first."))) sys.exit(1)