1 import os, sys, re, linda, gettext
2 from linda import clparser
3 from linda.debug import dprint
4 from linda.eggs import LindaEasterEggs
5 from linda.libchecks import Checks
6 from linda.output import OutputFormats
7 from linda.parser.changes import ChangesParser
8 from linda.parser.clparser import CLParser, CLParsingException
9 from linda.parser.config import ConfigFileParser, ConfigFileParserException
10
11 gettext.install('linda', unicode=True)
12 try:
13 clparser.parse_args()
14 except CLParsingException, e:
15 print "Linda: %s" % str(e)
16 sys.exit(7)
17 try:
18 ConfigFileParser()
19 except ConfigFileParserException, e:
20 print _("Error parsing config file: %s") % e
21 if not clparser['quiet']:
22 LindaEasterEggs()
23 linda.checks = Checks()
24 linda.checks.startup_register()
25 linda.outputformats = OutputFormats()
26 linda.outputformats.register_all('%s/output' % linda.root)
27 for x in clparser['files']:
28 if x.endswith('.changes'):
29 ch = ChangesParser(x)
30 for y in ch[0]['files']:
31 if os.path.exists(y[-1]) and not re.search('(diff|tar)\.gz', \
32 y[-1]):
33 clparser['files'].append(y[-1])
34 dprint(_("Command line arguments: %s.") % clparser.arguments)
35 if clparser['checks']:
36 linda.checks.purge()
37 if clparser['list-checks']:
38 linda.checks.print_checks()
39 sys.exit(0)
40 if clparser['format']:
41 if clparser['format'].lower() == 'help':
42 print _("Output formats:")
43 for x in filter(lambda x: x != '', linda.outputformats.keys()):
44 if linda.outputformats[x].__doc__ is not None:
45 docstr = linda.outputformats[x].__doc__
46 else:
47 docstr = 'No doc string.'
48 print " - %s: %s" % (x, docstr)
49 sys.exit(0)
50 else:
51 if clparser['format'].lower() in linda.outputformats.keys():
52 if clparser['format'].lower() == 'figlet':
53 if os.path.exists('/usr/bin/figlet'):
54 linda.outputobj = linda.outputformats['figlet']()
55 else:
56 linda.outputobj = linda.outputformats['']()
57 else:
58 linda.outputobj = \
59 linda.outputformats[clparser['format'].lower()]()
60 else:
61 linda.outputobj = linda.outputformats['']()
62 else:
63 linda.outputobj = linda.outputformats['']()
64