Mercurial > hg
view doc/runrst @ 52293:77b38c86915d
ci: add a small script one can run to purge older pipeline
We have over ten thousands old pipeline that take a huge space and that I
suspect to be the source of some slowdown in merge request.
However it seems that the only way to clear them is manually and through the
API, so lets do it.
The script was run today.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 12 Nov 2024 12:45:23 +0100 |
parents | 2a875530a023 |
children |
line wrap: on
line source
#!/usr/bin/env python3 # # runrst - register custom roles and run correct writer # # Copyright 2010 Olivia Mackall <olivia@selenic.com> and others # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. """usage: %s WRITER args... where WRITER is the name of a Docutils writer such as 'html' or 'manpage' """ import re import sys try: import docutils.core as core import docutils.nodes as nodes import docutils.utils as utils import docutils.parsers.rst.roles as roles except ImportError: sys.stderr.write( "abort: couldn't generate documentation: docutils " "module is missing\n" ) sys.stderr.write( "please install python-docutils or see " "http://docutils.sourceforge.net/\n" ) sys.exit(-1) # Whether we are rendering a help page for a single topic. # If false, we are rendering a monolithic page with all topics together. is_individual_pages_mode = False def make_cmd_ref_uri(cmd): if is_individual_pages_mode: return "hg-%s.html" % cmd else: return "hg.1.html#%s" % cmd known_refs = None def load_known_refs(fname): try: with open(fname, 'r') as fp: text = fp.read() return re.split(r'[ \n]+', text) except OSError: sys.stderr.write( "abort: couldn't find '%', please run documentation generation " "through the Makefile, or run 'make knownrefs'\n" ) sys.exit(-1) def find_known_ref(ref): global known_refs if known_refs is None: cmds = load_known_refs('commandlist.txt') topics = load_known_refs('topiclist.txt') exts = load_known_refs('extensionlist.txt') known_refs = {'hg': cmds, 'topic': topics, 'ext': exts} for reftype, refnames in known_refs.items(): if ref in refnames: return reftype return None def make_any_ref_uri(ref): if is_individual_pages_mode: # Try to find if ref is a command, topic, or extension. If not, # reference the anchor in the main hg.1 help page. reftype = find_known_ref(ref) if reftype: return '%s-%s.html' % (reftype, ref) return "hg.1.html#%s" % ref def role_hg(name, rawtext, text, lineno, inliner, options=None, content=None): text = "hg " + utils.unescape(text) linktext = nodes.literal(rawtext, text) parts = text.split() cmd, args = parts[1], parts[2:] refuri = make_cmd_ref_uri(cmd) if cmd == 'help' and args: if args[0] == 'config': # :hg:`help config` refuri = "hgrc.5.html" elif args[0].startswith('config.'): # :hg:`help config.SECTION...` refuri = "hgrc.5.html#%s" % args[0].split('.', 2)[1] elif len(args) >= 2 and args[0] == '-c': # :hg:`help -c COMMAND ...` is equivalent to :hg:`COMMAND` # (mainly for :hg:`help -c config`) refuri = make_cmd_ref_uri(args[1]) else: refuri = make_any_ref_uri(args[0]) node = nodes.reference(rawtext, '', linktext, refuri=refuri) return [node], [] roles.register_local_role("hg", role_hg) if __name__ == "__main__": if len(sys.argv) < 2: sys.stderr.write(__doc__ % sys.argv[0]) sys.exit(1) writer = sys.argv[1] del sys.argv[1] if sys.argv[1] == '--hg-individual-pages': is_individual_pages_mode = True del sys.argv[1] core.publish_cmdline(writer_name=writer)