def xmlize(self): ''' @rtype: XMLNode @return: xml document ''' package = XMLNode('package') package.attrs = {'title': self.title, 'version': self.version} package.description = self.description gens = package.generators for generator in self.generators: generator.xmlize(gens, self.id_map) return package
def main(options): repo_xml = os.path.join(options.repo_dir, 'repository.xml') if os.path.exists(repo_xml): print 'repository already exists at "%s"' % options.repo_dir sys.exit(1) # create repo dir if not os.path.exists(options.repo_dir): os.makedirs(options.repo_dir) # create repo data dir repo_data_dir = os.path.join(options.repo_dir, 'data') if not os.path.exists(repo_data_dir): os.makedirs(repo_data_dir) # create symlink to cgi scripts actions_dir = os.path.join(options.repo_dir, 'actions') cgi_scripts_dir = os.path.join(options.installation_dir, \ 'repository/server/cgi/') os.symlink(cgi_scripts_dir, actions_dir) # create 'repository.xml' ostream = open(repo_xml, 'w') repo = XMLNode('repository') repo.attrs = {'title': options.title} if options.description: repo.description = options.description ostream.write('<?xml version="1.0" encoding="UTF-8"?>\n') repo.serialize(ostream) ostream.close() # inform user of installation dir being used print 'using: installation_dir = "%s"' % (options.installation_dir) # write .htaccess for apache config htaccess_fpath = os.path.join(options.repo_dir, '.htaccess') f = open(htaccess_fpath, 'w') conf = APACHE_CONFIG % {'pythonpath': options.installation_dir} f.write(conf) f.close()