view contrib/casesmash.py @ 52258:b65f11f49375 stable

ci: for branches, use a single trigger This trigger will unlock all the job necessary to build wheels and upload nightly build. This should make the nightly build process more pratical. In practice right now, only run pipeline for branch by creating them explicitly on the web. So we could just run everything without trigger, but this is a decision for later. This changeset only focus on making the nightly build process somewhat manageable.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 15 Nov 2024 00:01:34 +0100
parents 6000f5b25c9b
children
line wrap: on
line source

import __builtin__
import os
from mercurial import util


def lowerwrap(scope, funcname):
    f = getattr(scope, funcname)

    def wrap(fname, *args, **kwargs):
        d, base = os.path.split(fname)
        try:
            files = os.listdir(d or '.')
        except OSError:
            files = []
        if base in files:
            return f(fname, *args, **kwargs)
        for fn in files:
            if fn.lower() == base.lower():
                return f(os.path.join(d, fn), *args, **kwargs)
        return f(fname, *args, **kwargs)

    scope.__dict__[funcname] = wrap


def normcase(path):
    return path.lower()


os.path.normcase = normcase

for f in 'file open'.split():
    lowerwrap(__builtin__, f)

for f in "chmod chown open lstat stat remove unlink".split():
    lowerwrap(os, f)

for f in "exists lexists".split():
    lowerwrap(os.path, f)

lowerwrap(util, 'posixfile')