Package linda :: Module bootstrap
[hide private]

Source Code for Module linda.bootstrap

 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