Exemplo n.º 1
0
 def install(self):
     if not os.path.isdir(self.outputdir):
         os.mkdir(self.outputdir)
     vars = {}
     for always in 'user', 'group', 'logfacility', 'loglevel', 'alive', 'timeout', 'address', 'port', 'xHTTP', 'control':
         vars[always] = self.options[always]
     if 'session' in self.options:
         # session seems to be restricted in Cheetah
         vars['affinity'] = dict(zip(['type', 'id', 'ttl'], self.options['session'].split(":", 2)))
     if 'emergency' in self.options:
         vars['emergency'] = dict(zip(['address', 'port'], self.options['emergency'].split(":", 1)))
     if 'err500' in self.options:
         packager = PackageInstaller(self)
         vars['err500'] = packager.package_path(self.options['err500'])
     if 'err503' in self.options:
         packager = PackageInstaller(self)
         vars['err503'] = packager.package_path(self.options['err503'])
     vars['backends'] = []
     for l in self.options['backends'].split("\n"):
         l = l.strip()
         if l: vars['backends'].append(dict(zip(['address', 'port'], l.split(":", 1))))
     if not os.path.exists(self.outputdir):
         os.mkdir(self.outputdir)
     template = open(self.template).read()
     c = Template(template, searchList = vars)
     open(self.cfgfile, 'w').write(str(c))
     self.runscript()
     self.options.created(self.outputdir)
     target = os.path.join(self.buildout["buildout"]["bin-directory"],self.name + "ctl")
     poundctl = open(target, "w")
     print >> poundctl, "#!/bin/sh"
     print >> poundctl, "%s -c %s $*" % (self.options['poundctl'], self.options['control'])
     poundctl.close()
     os.chmod(target, 0755)
     self.options.created(target)
     return self.options.created()