contrib/fuzz/revlog_corpus.py
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
Wed, 14 Feb 2024 22:50:00 -0500
changeset 51384 6fb4d2dfa8e4
parent 48875 6000f5b25c9b
permissions -rw-r--r--
crecord: add a handlesearch function This function sets up some of the UI, such as getting the search string from the user and displaying results or their absence.

import argparse
import os
import zipfile

ap = argparse.ArgumentParser()
ap.add_argument("out", metavar="some.zip", type=str, nargs=1)
args = ap.parse_args()

reporoot = os.path.normpath(os.path.join(os.path.dirname(__file__), '..', '..'))
# typically a standalone index
changelog = os.path.join(reporoot, '.hg', 'store', '00changelog.i')
# an inline revlog with only a few revisions
contributing = os.path.join(
    reporoot, '.hg', 'store', 'data', 'contrib', 'fuzz', 'mpatch.cc.i'
)

with zipfile.ZipFile(args.out[0], "w", zipfile.ZIP_STORED) as zf:
    if os.path.exists(changelog):
        with open(changelog, 'rb') as f:
            zf.writestr("00changelog.i", f.read())
    if os.path.exists(contributing):
        with open(contributing, 'rb') as f:
            zf.writestr("contributing.i", f.read())