]> git.proxmox.com Git - debcargo-conf.git/commitdiff
chain_build: support non collapsed crates
authorFabian Grünbichler <f.gruenbichler@proxmox.com>
Mon, 3 Jul 2023 12:08:28 +0000 (14:08 +0200)
committerFabian Grünbichler <f.gruenbichler@proxmox.com>
Mon, 3 Jul 2023 12:08:28 +0000 (14:08 +0200)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
dev/chain_build.py

index 0e3ea71b0e138479c417d4601dd8cfd469089e80..ff496df925e6785864b31bf51bc9b67501993373 100755 (executable)
@@ -79,6 +79,7 @@ def find_built(specs: list[tuple[str, str]]) -> list[tuple[str, str, str]]:
        _print('Conducting search in apt cache and build/ directory for existing debs')
        for crate, ver in specs:
                _crate = _todash(crate)
+               pkg_re = re.compile(f'^librust-{_crate}(?:\+.*?)?-dev_{ver}')
                if ver == '*':
                        try:
                                ver = _get_dch_version(crate)
@@ -93,7 +94,7 @@ def find_built(specs: list[tuple[str, str]]) -> list[tuple[str, str, str]]:
                        # means it's yet to be `./update.sh`d, move on
                        continue
                for deb in debs:
-                       if f'{_crate}-dev_{ver}' in deb:
+                       if pkg_re.match(deb) is not None:
                                built.append((crate, deb, 'build'))
        return built
 
@@ -209,8 +210,15 @@ def chain_build(specs):
                built.add(crate)
                if ver == '*':
                        # used in a glob, so
-                       ver = '-'
-               debs.add(_find(f'build/*{_todash(crate)}-dev*{ver}*.deb')[0][6:])
+                       ver = ''
+               _crate=_todash(crate)
+               pkg_re = re.compile(f'^librust-{_crate}(?:\+.*?)?-dev_{ver}')
+               chdir('build')
+               all_debs = _find('*.deb')
+               chdir('..')
+               for deb in all_debs:
+                       if pkg_re.match(deb) is not None:
+                               debs.add(deb)
 
 
 if __name__ == '__main__':