build: distribute variant templates content (#88848) #556

Merged
fpeters merged 1 commits from wip/88848-variant-symlinks into main 2024-03-29 15:34:04 +01:00
1 changed files with 22 additions and 0 deletions

View File

@ -1,5 +1,6 @@
#! /usr/bin/env python
import functools
import glob
import os
import subprocess
@ -41,6 +42,27 @@ class eo_sdist(sdist):
if os.path.exists('VERSION'):
os.remove('VERSION')
def local_findall(self, dir=os.curdir):
# override default file search to allow for duplicates (as some themes have
# multiple variants that are just symlinks)
Review

C'est la méthode findall de setuptools qui supprime les "doublons", cette fonction remplace ça.

C'est la méthode findall de setuptools qui supprime les "doublons", cette fonction remplace ça.
files = [
os.path.join(base, file) for base, dirs, files in os.walk(dir, followlinks=True) for file in files
]
if dir == os.curdir:
make_rel = functools.partial(os.path.relpath, start=dir)
files = map(make_rel, files)
self.filelist.allfiles = list(filter(os.path.isfile, files))
def get_file_list(self):
self.filelist.findall = self.local_findall
super().get_file_list()
def copy_file(self, *args, **kwargs):
# do not allow hardlinking as hardlinks would get inserted as is in
# the tarball, and would not extract properly.
kwargs.pop('link', None)
Review

Au moment de la création du répertoire qui va servir à la construction de l'archive, il ne fait pas qu'il y ait d'hardlinks (sinon ils se trouvent comme ça dans le tar.gz et à la décompression ça ne donne pas quelque chose de correct).

Au moment de la création du répertoire qui va servir à la construction de l'archive, il ne fait pas qu'il y ait d'hardlinks (sinon ils se trouvent comme ça dans le tar.gz et à la décompression ça ne donne pas quelque chose de correct).
super().copy_file(*args, **kwargs)
def get_version():
'''Use the VERSION, if absent generates a version with git describe, if not