def _generate_ivy_report(self): classpath = binary_utils.nailgun_profile_classpath(self, self._profile) reports = [] org, name = self._ivy_utils.identify() xsl = os.path.join(self._cachedir, 'ivy-report.xsl') safe_mkdir(self._outdir, clean=True) for conf in self._confs: params = dict(org=org, name=name, conf=conf) xml = self._ivy_utils.xml_report_path(conf) out = os.path.join(self._outdir, '%(org)s-%(name)s-%(conf)s.html' % params) args = ['-IN', xml, '-XSL', xsl, '-OUT', out] self.runjava('org.apache.xalan.xslt.Process', classpath=classpath, args=args) reports.append(out) css = os.path.join(self._outdir, 'ivy-report.css') if os.path.exists(css): os.unlink(css) shutil.copy(os.path.join(self._cachedir, 'ivy-report.css'), self._outdir) if self._open: binary_utils.open(*reports)
def execute(self, targets): try: wiki = Confluence.login(self.url) except ConfluenceError as e: raise TaskError("Failed to login to confluence: %s" % e) urls = list() genmap = self.context.products.get("markdown_html") for page in filter(lambda t: isinstance(t, Page), targets): wikiconfig = page.wiki_config(self.wiki()) if wikiconfig: html_info = genmap.get((self.wiki(), page)) if len(html_info) > 1: raise TaskError("Unexpected resources for %s: %s" % (page, html_info)) basedir, htmls = html_info.items()[0] if len(htmls) != 1: raise TaskError("Unexpected resources for %s: %s" % (page, htmls)) with safe_open(os.path.join(basedir, htmls[0])) as contents: url = self.publish_page( wiki, wikiconfig["space"], wikiconfig["title"], contents.read(), parent=wikiconfig.get("parent") ) if url: urls.append(url) self.context.log.info("Published %s to %s" % (page, url)) if self.open and urls: binary_utils.open(*urls)
def _generate_ivy_report(self): classpath = binary_utils.nailgun_profile_classpath(self, self._profile) reports = [] org, name = self._ivy_utils.identify() xsl = os.path.join(self._cachedir, 'ivy-report.xsl') safe_mkdir(self._outdir, clean=True) for conf in self._confs: params = dict( org=org, name=name, conf=conf ) xml = self._ivy_utils.xml_report_path(conf) out = os.path.join(self._outdir, '%(org)s-%(name)s-%(conf)s.html' % params) args = ['-IN', xml, '-XSL', xsl, '-OUT', out] self.runjava('org.apache.xalan.xslt.Process', classpath=classpath, args=args) reports.append(out) css = os.path.join(self._outdir, 'ivy-report.css') if os.path.exists(css): os.unlink(css) shutil.copy(os.path.join(self._cachedir, 'ivy-report.css'), self._outdir) if self._open: binary_utils.open(*reports)
def generate_reports(): args = [ 'report', '-in', self.coverage_metadata_file, '-in', self.coverage_file, '-exit' ] source_bases = set(t.target_base for t in targets) for source_base in source_bases: args.extend(['-sp', source_base]) sorting = ['-Dreport.sort', '+name,+class,+method,+block'] if self.coverage_report_console: args.extend(['-r', 'txt', '-Dreport.txt.out.file=%s' % self.coverage_console_file] + sorting) if self.coverage_report_xml: args.extend(['-r', 'xml','-Dreport.xml.out.file=%s' % self.coverage_xml_file]) if self.coverage_report_html: args.extend(['-r', 'html', '-Dreport.html.out.file=%s' % self.coverage_html_file, '-Dreport.out.encoding=UTF-8'] + sorting) result = runjava( classpath=emma_classpath, main='emma', args=args ) if result != 0: raise TaskError('Failed to emma generate code coverage reports: %d' % result) if self.coverage_report_console: with safe_open(self.coverage_console_file) as console_report: sys.stdout.write(console_report.read()) if self.coverage_report_html_open: binary_utils.open(self.coverage_html_file)
def execute(self, targets): pages = [] for target in targets: if isinstance(target, Page): wikiconfig = target.wiki_config(self.wiki()) if wikiconfig: pages.append((target, wikiconfig)) urls = list() genmap = self.context.products.get('markdown_html') for page, wikiconfig in pages: html_info = genmap.get((self.wiki(), page)) if len(html_info) > 1: raise TaskError('Unexpected resources for %s: %s' % (page, html_info)) basedir, htmls = html_info.items()[0] if len(htmls) != 1: raise TaskError('Unexpected resources for %s: %s' % (page, htmls)) with safe_open(os.path.join(basedir, htmls[0])) as contents: url = self.publish_page( page.address, wikiconfig['space'], wikiconfig['title'], contents.read(), parent=wikiconfig.get('parent') ) if url: urls.append(url) self.context.log.info('Published %s to %s' % (page, url)) if self.open and urls: binary_utils.open(*urls)
def generate_combined(self, classpath, targets): gendir = os.path.join(self._output_dir, 'combined') if targets: safe_mkdir(gendir, clean=True) command = create_javadoc_command(classpath, gendir, *targets) if command: create_javadoc(command, gendir) if self.open: binary_utils.open(os.path.join(gendir, 'index.html'))
def execute(self, targets): """Stages IDE project artifacts to a project directory and generates IDE configuration files.""" self.map_internal_jars(targets) self.map_external_jars() idefile = self.generate_project(self._project) if idefile: binary_utils.open(idefile)
def generate_reports(): args = [ 'report', '-in', self.coverage_metadata_file, '-in', self.coverage_file, '-exit' ] source_bases = set(t.target_base for t in targets) for source_base in source_bases: args.extend(['-sp', source_base]) sorting = [ '-Dreport.sort', '+name,+class,+method,+block' ] if self.coverage_report_console: args.extend([ '-r', 'txt', '-Dreport.txt.out.file=%s' % self.coverage_console_file ] + sorting) if self.coverage_report_xml: args.extend([ '-r', 'xml', '-Dreport.xml.out.file=%s' % self.coverage_xml_file ]) if self.coverage_report_html: args.extend([ '-r', 'html', '-Dreport.html.out.file=%s' % self.coverage_html_file, '-Dreport.out.encoding=UTF-8' ] + sorting) result = runjava(classpath=emma_classpath, main='emma', args=args) if result != 0: raise TaskError( 'Failed to emma generate code coverage reports: %d' % result) if self.coverage_report_console: with safe_open(self.coverage_console_file ) as console_report: sys.stdout.write(console_report.read()) if self.coverage_report_html_open: binary_utils.open(self.coverage_html_file)
def execute(self, targets): if not MarkdownToHtml.AVAILABLE: raise TaskError( 'Cannot process markdown - no markdown lib on the sys.path') # TODO(John Sirois): consider adding change detection css_relpath = os.path.join('css', 'codehighlight.css') css = emit_codehighlight_css(os.path.join(self.outdir, css_relpath), self.code_style) if css: self.context.log.info('Emitted %s' % css) def is_page(target): return isinstance(target, Page) roots = set() interior_nodes = set() if self.open: dependencies_by_page = self.context.dependants( on_predicate=is_page, from_predicate=is_page) roots.update(dependencies_by_page.keys()) for dependencies in dependencies_by_page.values(): interior_nodes.update(dependencies) roots.difference_update(dependencies) for page in self.context.targets(is_page): # There are no in or out edges so we need to show show this isolated page. if not page.dependencies and page not in interior_nodes: roots.add(page) genmap = self.context.products.get('markdown_html') show = [] for page in filter(is_page, targets): _, ext = os.path.splitext(page.source) if ext in self.extensions: def process_page(key, outdir, url_builder, config): outputs = list() if css and self.standalone: outputs.append(css_relpath) html_path = self.process(outdir, page.target_base, page.source, self.standalone, url_builder, config, css=css) self.context.log.info('Processed %s to %s' % (page.source, html_path)) outputs.append(os.path.relpath(html_path, outdir)) genmap.add(key, outdir, outputs) return html_path def url_builder(linked_page, config=None): path, ext = os.path.splitext(linked_page.source) return linked_page.name, os.path.relpath( path + '.html', os.path.dirname(page.source)) html = process_page(page, os.path.join(self.outdir, 'html'), url_builder, lambda p: None) if self.open and page in roots: show.append(html) for wiki in page.wikis(): def get_config(page): return page.wiki_config(wiki) basedir = os.path.join(self.outdir, wiki.id) process_page((wiki, page), basedir, wiki.url_builder, get_config) if show: binary_utils.open(*show)
def execute(self, targets): if not MarkdownToHtml.AVAILABLE: raise TaskError('Cannot process markdown - no markdown lib on the sys.path') # TODO(John Sirois): consider adding change detection css_relpath = os.path.join('css', 'codehighlight.css') css = emit_codehighlight_css(os.path.join(self.outdir, css_relpath), self.code_style) if css: self.context.log.info('Emitted %s' % css) def is_page(target): return isinstance(target, Page) roots = set() interior_nodes = set() if self.open: dependencies_by_page = self.context.dependants(on_predicate=is_page, from_predicate=is_page) roots.update(dependencies_by_page.keys()) for dependencies in dependencies_by_page.values(): interior_nodes.update(dependencies) roots.difference_update(dependencies) for page in self.context.targets(is_page): # There are no in or out edges so we need to show show this isolated page. if not page.dependencies and page not in interior_nodes: roots.add(page) genmap = self.context.products.get('markdown_html') show = [] for page in filter(is_page, targets): _, ext = os.path.splitext(page.source) if ext in self.extensions: def process_page(key, outdir, url_builder, config): outputs = list() if css and self.standalone: outputs.append(css_relpath) html_path = self.process( outdir, page.target_base, page.source, self.standalone, url_builder, config, css=css ) self.context.log.info('Processed %s to %s' % (page.source, html_path)) outputs.append(os.path.relpath(html_path, outdir)) genmap.add(key, outdir, outputs) return html_path def url_builder(linked_page, config=None): path, ext = os.path.splitext(linked_page.source) return linked_page.name, os.path.relpath(path + '.html', os.path.dirname(page.source)) html = process_page(page, os.path.join(self.outdir, 'html'), url_builder, lambda p: None) if self.open and page in roots: show.append(html) for wiki in page.wikis(): def get_config(page): return page.wiki_config(wiki) basedir = os.path.join(self.outdir, wiki.id) process_page((wiki, page), basedir, wiki.url_builder, get_config) if show: binary_utils.open(*show)