pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/pkgtools/url2pkg/files



Module Name:    pkgsrc
Committed By:   rillig
Date:           Sat Oct  5 21:05:50 UTC 2019

Modified Files:
        pkgsrc/pkgtools/url2pkg/files: url2pkg.py url2pkg_test.py

Log Message:
pkgtools/url2pkg: clean up path handling


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 pkgsrc/pkgtools/url2pkg/files/url2pkg.py
cvs rdiff -u -r1.12 -r1.13 pkgsrc/pkgtools/url2pkg/files/url2pkg_test.py

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/pkgtools/url2pkg/files/url2pkg.py
diff -u pkgsrc/pkgtools/url2pkg/files/url2pkg.py:1.13 pkgsrc/pkgtools/url2pkg/files/url2pkg.py:1.14
--- pkgsrc/pkgtools/url2pkg/files/url2pkg.py:1.13       Sat Oct  5 19:59:04 2019
+++ pkgsrc/pkgtools/url2pkg/files/url2pkg.py    Sat Oct  5 21:05:50 2019
@@ -1,5 +1,5 @@
 #! @PYTHONBIN@
-# $NetBSD: url2pkg.py,v 1.13 2019/10/05 19:59:04 rillig Exp $
+# $NetBSD: url2pkg.py,v 1.14 2019/10/05 21:05:50 rillig Exp $
 
 # Copyright (c) 2019 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -42,13 +42,12 @@
 
 
 import getopt
-import glob
 import os
-import pathlib
 import re
 import subprocess
 import sys
-from typing import Callable, Dict, Iterator, List, Optional, Sequence, Tuple, Union
+from pathlib import Path
+from typing import Callable, Dict, List, Optional, Sequence, Tuple, Union
 
 
 class Var:
@@ -80,12 +79,12 @@ class Url2Pkg:
         self.make = os.getenv('MAKE') or '@MAKE@'
         self.libdir = '@LIBDIR@'
         self.perl5 = '@PERL5@'
-        self.pkgsrcdir = pathlib.Path(os.getenv('PKGSRCDIR') or '@PKGSRCDIR@')
+        self.pkgsrcdir = Path(os.getenv('PKGSRCDIR') or '@PKGSRCDIR@')
         self.pythonbin = '@PYTHONBIN@'
         self.editor = os.getenv('PKGEDITOR') or os.getenv('EDITOR') or 'vi'
 
         # the following are overridden in tests
-        self.pkgdir = pathlib.Path('.')
+        self.pkgdir = Path('.')
         self.out = sys.stdout
         self.err = sys.stderr
 
@@ -124,17 +123,16 @@ class Lines:
             self.add(line)
 
     @classmethod
-    def read_from(cls, filename: Union[str, pathlib.Path]) -> 'Lines':
-        return Lines(*pathlib.Path(filename).read_text().splitlines())
+    def read_from(cls, src: Path) -> 'Lines':
+        return Lines(*src.read_text().splitlines())
 
-    def write_to(self, filename: Union[str, pathlib.Path]):
-        target = pathlib.Path(filename)
-        tmp = target.with_name(f'{target.name}.tmp')
+    def write_to(self, dst: Path):
+        tmp = dst.with_name(f'{dst.name}.tmp')
         with tmp.open('w') as f:
             f.writelines(line + '\n' for line in self.lines)
-        tmp.replace(target)
+        tmp.replace(dst)
 
-    def all_varassigns(self, varname: str) -> Sequence[Varassign]:
+    def all_varassigns(self, varname: str) -> List[Varassign]:
         varassigns = []
         for (i, line) in enumerate(self.lines):
             pattern = r'''(?x)
@@ -384,7 +382,7 @@ class Generator:
         elif re.search(r'-v\d', distname) and not re.search(r'-v.*-v\d', distname):
             self.pkgname_transform = ':S,-v,-,'
 
-        main_category = pathlib.Path.cwd().parts[-2]
+        main_category = Path.cwd().parts[-2]
         self.categories = main_category \
             if main_category not in ('local', 'wip') \
             else '# TODO: add primary category'
@@ -476,11 +474,11 @@ class Adjuster:
 
         # the absolute pathname to the working directory, containing
         # the extracted distfiles.
-        self.abs_wrkdir = ''
+        self.abs_wrkdir = Path('')
 
         # the absolute pathname to a subdirectory of abs_wrkdir, typically
         # containing package-provided Makefiles or configure scripts.
-        self.abs_wrksrc = ''
+        self.abs_wrksrc = Path('')
 
         # the regular files and directories relative to abs_wrksrc.
         self.wrksrc_files: List[str] = []
@@ -576,7 +574,7 @@ class Adjuster:
         effective_env = dict(os.environ)
         effective_env.update(env)
 
-        self.up.debug('reading dependencies: cd {0} && env {1} {2}', cwd, env, cmd)
+        self.up.debug('reading dependencies: cd {0} && env {1} {2}', str(cwd), env, cmd)
         output: bytes = subprocess.check_output(args=cmd, shell=True, env=effective_env, cwd=cwd)
 
         dep_lines: List[Tuple[str, str, str, str]] = []
@@ -609,35 +607,39 @@ class Adjuster:
             self.add_dependency(kind, pkgbase, constraint, dep_dir)
 
     def wrksrc_open(self, relative_pathname: str):
-        return open(self.abs_wrksrc + '/' + relative_pathname)
+        return (self.abs_wrksrc / relative_pathname).open()
 
-    def wrksrc_find(self, what: Union[str, Callable[[str], bool]]) -> Iterator[str]:
+    def wrksrc_find(self, what: Union[str, Callable[[str], bool]]) -> List[str]:
         def search(f):
             return re.search(what, f) if type(what) == str else what(f)
 
         return list(sorted(filter(search, self.wrksrc_files)))
 
-    def wrksrc_grep(self, filename: str, pattern: str) -> List[str]:
+    def wrksrc_grep(self, filename: str, pattern: str) -> List[Union[str, List[str]]]:
         with self.wrksrc_open(filename) as f:
-            return [line for line in f if re.search(pattern, line)]
+            matches = []
+            for line in f:
+                line = line.rstrip('\n')
+                m = re.search(pattern, line)
+                if m:
+                    groups = list(m.groups())
+                    matches.append(groups if groups else line)
+            return matches
 
     def wrksrc_isdir(self, relative_pathname: str) -> bool:
-        return os.path.isdir(self.abs_wrksrc + '/' + relative_pathname)
+        return (self.abs_wrksrc / relative_pathname).is_dir()
 
     def wrksrc_isfile(self, relative_pathname: str) -> bool:
-        return os.path.isfile(self.abs_wrksrc + '/' + relative_pathname)
+        return (self.abs_wrksrc / relative_pathname).is_file()
 
     def adjust_configure(self):
         if not self.wrksrc_isfile('configure'):
             return
 
-        gnu = False
-        some = False
-        for configure in self.wrksrc_find(r'(^|/)configure$'):
-            some = True
-            if self.wrksrc_grep(configure, r'\b(Free Software Foundation|autoconf)\b'):
-                gnu = True
-        if some:
+        configures = self.wrksrc_find(r'(^|/)configure$')
+        if configures:
+            gnu = any(self.wrksrc_grep(configure, r'\b(Free Software Foundation|autoconf)\b')
+                      for configure in configures)
             varname = 'GNU_CONFIGURE' if gnu else 'HAS_CONFIGURE'
             self.build_vars.append(Var(varname, '=', 'yes'))
 
@@ -742,12 +744,9 @@ class Adjuster:
         if not self.wrksrc_isfile('Cargo.lock'):
             return
 
-        with self.wrksrc_open('Cargo.lock') as f:
-            for line in f:
-                # "checksum cargo-package-name cargo-package-version
-                m = re.search(r'^"checksum\s(\S+)\s(\S+)', line)
-                if m:
-                    self.build_vars.append(Var('CARGO_CRATE_DEPENDS', '+=', m[1] + '-' + m[2]))
+        # "checksum cargo-package-name cargo-package-version
+        for (name, version) in self.wrksrc_grep('Cargo.lock', r'^"checksum\s(\S+)\s(\S+)'):
+            self.build_vars.append(Var('CARGO_CRATE_DEPENDS', '+=', f'{name}-{version}'))
 
         self.includes.append('../../lang/rust/cargo.mk')
 
@@ -798,7 +797,7 @@ class Adjuster:
         if len(files) == 1:
             if files[0] != self.makefile_lines.get('DISTNAME'):
                 self.build_vars.append(Var('WRKSRC', '=', '${WRKDIR}/' + files[0]))
-            self.abs_wrksrc = self.abs_wrkdir + '/' + files[0]
+            self.abs_wrksrc = self.abs_wrkdir / files[0]
         elif len(files) == 0:
             self.build_vars.append(Var('WRKSRC', '=', '${WRKDIR}'))
             self.abs_wrksrc = self.abs_wrkdir
@@ -895,14 +894,14 @@ class Adjuster:
 
     def adjust(self):
 
-        def scan(basedir: str, pattern: str) -> List[str]:
-            full_paths = glob.glob(f'{basedir}/{pattern}', recursive=True)
-            return list(f[len(basedir) + 1:] for f in full_paths)
+        def scan(basedir: Path, pattern: str) -> List[str]:
+            full_paths = basedir.rglob(pattern)
+            return [str(f.relative_to(basedir)) for f in full_paths]
 
         self.up.debug('Adjusting the Makefile')
         self.makefile_lines = Lines.read_from(self.up.pkgdir / 'Makefile')
 
-        self.abs_wrkdir = self.up.show_var('WRKDIR')
+        self.abs_wrkdir = Path(self.up.show_var('WRKDIR'))
         self.determine_wrksrc()
         self.wrksrc_files = scan(self.abs_wrksrc, '**')
         self.wrksrc_dirs = scan(self.abs_wrksrc, '**/')

Index: pkgsrc/pkgtools/url2pkg/files/url2pkg_test.py
diff -u pkgsrc/pkgtools/url2pkg/files/url2pkg_test.py:1.12 pkgsrc/pkgtools/url2pkg/files/url2pkg_test.py:1.13
--- pkgsrc/pkgtools/url2pkg/files/url2pkg_test.py:1.12  Sat Oct  5 19:59:04 2019
+++ pkgsrc/pkgtools/url2pkg/files/url2pkg_test.py       Sat Oct  5 21:05:50 2019
@@ -1,11 +1,11 @@
-# $NetBSD: url2pkg_test.py,v 1.12 2019/10/05 19:59:04 rillig Exp $
+# $NetBSD: url2pkg_test.py,v 1.13 2019/10/05 21:05:50 rillig Exp $
 
 import pytest
 from url2pkg import *
 
 mkcvsid = '# $''NetBSD$'
 up: Url2Pkg
-prev_dir = pathlib.Path.cwd()
+prev_dir = Path.cwd()
 
 
 def setup_function(_):
@@ -31,7 +31,7 @@ def setup_function(_):
 
 
 def teardown_function(_):
-    os.chdir(str(prev_dir))
+    os.chdir(prev_dir)
     assert up.out.written() == []
     assert up.err.written() == []
 
@@ -93,16 +93,16 @@ def test_Url2Pkg_bmake():
     ]
 
 
-def test_Lines__write_and_read(tmp_path: pathlib.Path):
+def test_Lines__write_and_read(tmp_path: Path):
     example = tmp_path / 'example'
 
     lines = Lines('1', '2', '3')
 
-    lines.write_to(str(example))
+    lines.write_to(example)
 
     assert example.read_text() == '1\n2\n3\n'
 
-    back = Lines.read_from(str(example))
+    back = Lines.read_from(example)
 
     assert back.lines == ['1', '2', '3']
 
@@ -613,7 +613,7 @@ def test_Generator_determine_distname__v
     ]
 
 
-def test_Generator_generate_package(tmp_path: pathlib.Path):
+def test_Generator_generate_package(tmp_path: Path):
     url = 'https://ftp.gnu.org/pub/gnu/cflow/cflow-1.6.tar.gz'
     up.editor = 'true'  # the shell command
     up.make = 'true'  # the shell command
@@ -678,6 +678,21 @@ def test_Adjuster_read_dependencies__loo
     ]
 
 
+def test_Adjuster_wrksrc_grep(tmp_path: Path):
+    adjuster = Adjuster(up, '', Lines())
+    adjuster.abs_wrksrc = tmp_path
+    (tmp_path / 'file').write_text('\n'.join(
+        ('a', 'b', 'c', 'd', 'e', 'abc', 'def', 'ghi')
+    ))
+
+    assert adjuster.wrksrc_grep('file', r'e') == ['e', 'def']
+    assert adjuster.wrksrc_grep('file', r'(.)(.)(.)') == [
+        ['a', 'b', 'c'],
+        ['d', 'e', 'f'],
+        ['g', 'h', 'i'],
+    ]
+
+
 def test_Adjuster_generate_adjusted_Makefile_lines():
     adjuster = Adjuster(up, 'https://example.org/pkgname-1.0.tar.gz', Lines())
     adjuster.makefile_lines = Lines(
@@ -815,9 +830,9 @@ def test_Adjuster_add_dependency__buildl
     ]
 
 
-def test_Adjuster_adjust_cmake(tmp_path: pathlib.Path):
+def test_Adjuster_adjust_cmake(tmp_path: Path):
     adjuster = Adjuster(up, '', Lines())
-    adjuster.abs_wrksrc = str(tmp_path)
+    adjuster.abs_wrksrc = tmp_path
     (tmp_path / 'CMakeLists.txt').touch()
 
     adjuster.adjust_cmake()
@@ -825,18 +840,18 @@ def test_Adjuster_adjust_cmake(tmp_path:
     assert str_vars(adjuster.build_vars) == ['USE_CMAKE=yes']
 
 
-def test_Adjuster_adjust_configure__none(tmp_path: pathlib.Path):
+def test_Adjuster_adjust_configure__none(tmp_path: Path):
     adjuster = Adjuster(up, '', Lines())
-    adjuster.abs_wrksrc = str(tmp_path)
+    adjuster.abs_wrksrc = tmp_path
 
     adjuster.adjust_configure()
 
     assert adjuster.build_vars == []
 
 
-def test_Adjuster_adjust_configure__GNU(tmp_path: pathlib.Path):
+def test_Adjuster_adjust_configure__GNU(tmp_path: Path):
     adjuster = Adjuster(up, '', Lines())
-    adjuster.abs_wrksrc = str(tmp_path)
+    adjuster.abs_wrksrc = tmp_path
     adjuster.wrksrc_files.append('configure')
     (tmp_path / 'configure').write_text('# Free Software Foundation\n')
 
@@ -847,9 +862,9 @@ def test_Adjuster_adjust_configure__GNU(
     ]
 
 
-def test_Adjuster_adjust_configure__other(tmp_path: pathlib.Path):
+def test_Adjuster_adjust_configure__other(tmp_path: Path):
     adjuster = Adjuster(up, '', Lines())
-    adjuster.abs_wrksrc = str(tmp_path)
+    adjuster.abs_wrksrc = tmp_path
     adjuster.wrksrc_files.append('configure')
     (tmp_path / 'configure').write_text('# A generic configure script\n')
 
@@ -860,18 +875,18 @@ def test_Adjuster_adjust_configure__othe
     ]
 
 
-def test_Adjuster_adjust_cargo__not_found(tmp_path: pathlib.Path):
+def test_Adjuster_adjust_cargo__not_found(tmp_path: Path):
     adjuster = Adjuster(up, '', Lines())
-    adjuster.abs_wrksrc = str(tmp_path)
+    adjuster.abs_wrksrc = tmp_path
 
     adjuster.adjust_cargo()
 
     assert str_vars(adjuster.build_vars) == []
 
 
-def test_Adjuster_adjust_cargo__found(tmp_path: pathlib.Path):
+def test_Adjuster_adjust_cargo__found(tmp_path: Path):
     adjuster = Adjuster(up, '', Lines())
-    adjuster.abs_wrksrc = str(tmp_path)
+    adjuster.abs_wrksrc = tmp_path
     (tmp_path / 'Cargo.lock').write_text('"checksum cargo-pkg 1.2.3 1234"')
 
     adjuster.adjust_cargo()
@@ -901,9 +916,9 @@ def test_Adjuster_adjust_gconf2():
     ]
 
 
-def test_Adjuster_adjust_libtool__ltconfig(tmp_path: pathlib.Path):
+def test_Adjuster_adjust_libtool__ltconfig(tmp_path: Path):
     adjuster = Adjuster(up, '', Lines())
-    adjuster.abs_wrksrc = str(tmp_path)
+    adjuster.abs_wrksrc = tmp_path
     (tmp_path / 'ltconfig').write_text('')
 
     adjuster.adjust_libtool()
@@ -911,9 +926,9 @@ def test_Adjuster_adjust_libtool__ltconf
     assert str_vars(adjuster.build_vars) == ['USE_LIBTOOL=yes']
 
 
-def test_Adjuster_adjust_libtool__libltdl(tmp_path: pathlib.Path):
+def test_Adjuster_adjust_libtool__libltdl(tmp_path: Path):
     adjuster = Adjuster(up, '', Lines())
-    adjuster.abs_wrksrc = str(tmp_path)
+    adjuster.abs_wrksrc = tmp_path
     (tmp_path / 'libltdl').mkdir()
 
     adjuster.adjust_libtool()
@@ -923,9 +938,9 @@ def test_Adjuster_adjust_libtool__libltd
     ]
 
 
-def test_Adjuster_adjust_meson(tmp_path: pathlib.Path):
+def test_Adjuster_adjust_meson(tmp_path: Path):
     adjuster = Adjuster(up, '', Lines())
-    adjuster.abs_wrksrc = str(tmp_path)
+    adjuster.abs_wrksrc = tmp_path
     (tmp_path / 'meson.build').touch()
 
     adjuster.adjust_meson()
@@ -933,12 +948,12 @@ def test_Adjuster_adjust_meson(tmp_path:
     assert adjuster.includes == ['../../devel/py-meson/build.mk']
 
 
-def test_Adjuster_adjust_perl_module_Build_PL(tmp_path: pathlib.Path):
+def test_Adjuster_adjust_perl_module_Build_PL(tmp_path: Path):
     up.perl5 = 'echo perl5'
     up.libdir = '/libdir'
     up.verbose = True
     adjuster = Adjuster(up, '', Lines())
-    adjuster.abs_wrksrc = str(tmp_path)
+    adjuster.abs_wrksrc = tmp_path
 
     adjuster.adjust_perl_module_Build_PL()
 
@@ -949,12 +964,12 @@ def test_Adjuster_adjust_perl_module_Bui
     ]
 
 
-def test_Adjuster_adjust_perl_module_Makefile_PL(tmp_path: pathlib.Path):
+def test_Adjuster_adjust_perl_module_Makefile_PL(tmp_path: Path):
     up.perl5 = 'echo perl5'
     up.libdir = '/libdir'
     up.verbose = True
     adjuster = Adjuster(up, '', Lines())
-    adjuster.abs_wrksrc = str(tmp_path)
+    adjuster.abs_wrksrc = tmp_path
 
     adjuster.adjust_perl_module_Makefile_PL()
 
@@ -978,11 +993,11 @@ def test_Adjuster_adjust_perl_module_hom
     assert adjuster.makefile_lines.get('HOMEPAGE') == 'https://metacpan.org/pod/Perl::Module'
 
 
-def test_Adjuster_adjust_perl_module__Build_PL(tmp_path: pathlib.Path):
+def test_Adjuster_adjust_perl_module__Build_PL(tmp_path: Path):
     up.perl5 = 'echo perl5'
     up.pkgdir = tmp_path  # for removing the PLIST
     adjuster = Adjuster(up, 'https://example.org/Perl-Module-1.0.tar.gz', Lines())
-    adjuster.abs_wrksrc = str(tmp_path)
+    adjuster.abs_wrksrc = tmp_path
     adjuster.makefile_lines.add_vars(
         Var('DISTNAME', '=', 'Perl-Module-1.0.tar.gz'),
         Var('MASTER_SITES', '=', '${MASTER_SITE_PERL_CPAN:=subdir/}'),
@@ -1008,13 +1023,13 @@ def test_Adjuster_adjust_perl_module__Bu
     assert not (tmp_path / 'PLIST').exists()
 
 
-def test_Adjuster_adjust_perl_module__Makefile_PL_without_PLIST(tmp_path: pathlib.Path):
+def test_Adjuster_adjust_perl_module__Makefile_PL_without_PLIST(tmp_path: Path):
     # For code coverage, when PLIST cannot be unlinked.
 
     up.perl5 = 'echo perl5'
     up.pkgdir = tmp_path
     adjuster = Adjuster(up, 'https://example.org/Mod-1.0.tar.gz', Lines())
-    adjuster.abs_wrksrc = str(tmp_path)
+    adjuster.abs_wrksrc = tmp_path
     adjuster.makefile_lines.add_vars(
         Var('DISTNAME', '=', 'Mod-1.0.tar.gz'),
         Var('MASTER_SITES', '=', '${MASTER_SITE_PERL_CPAN:=subdir/}'),
@@ -1028,12 +1043,12 @@ def test_Adjuster_adjust_perl_module__Ma
     assert not (tmp_path / 'PLIST').exists()
 
 
-def test_Adjuster_adjust_python_module(tmp_path: pathlib.Path):
+def test_Adjuster_adjust_python_module(tmp_path: Path):
     url = 'https://example.org/Mod-1.0.tar.gz'
     up.pythonbin = 'echo python'
     up.pkgdir = tmp_path
     adjuster = Adjuster(up, url, Lines())
-    adjuster.abs_wrksrc = str(tmp_path)
+    adjuster.abs_wrksrc = tmp_path
     adjuster.makefile_lines = Generator(url).generate_Makefile()
     (tmp_path / 'setup.py').touch()
 
@@ -1199,28 +1214,28 @@ def test_Adjuster__adjust_homepage():
     ]
 
 
-def test_Adjuster_determine_wrksrc__no_files(tmp_path: pathlib.Path):
+def test_Adjuster_determine_wrksrc__no_files(tmp_path: Path):
     adjuster = Adjuster(up, '', Lines())
-    adjuster.abs_wrkdir = str(tmp_path)
+    adjuster.abs_wrkdir = tmp_path
 
     adjuster.determine_wrksrc()
 
     assert adjuster.abs_wrksrc == adjuster.abs_wrkdir
 
 
-def test_Adjuster_determine_wrksrc__single_dir(tmp_path: pathlib.Path):
+def test_Adjuster_determine_wrksrc__single_dir(tmp_path: Path):
     adjuster = Adjuster(up, '', Lines())
-    adjuster.abs_wrkdir = str(tmp_path)
+    adjuster.abs_wrkdir = tmp_path
     (tmp_path / 'subdir').mkdir()
 
     adjuster.determine_wrksrc()
 
-    assert adjuster.abs_wrksrc == adjuster.abs_wrkdir + '/subdir'
+    assert adjuster.abs_wrksrc == adjuster.abs_wrkdir / 'subdir'
 
 
-def test_Adjuster_determine_wrksrc__several_dirs(tmp_path: pathlib.Path):
+def test_Adjuster_determine_wrksrc__several_dirs(tmp_path: Path):
     adjuster = Adjuster(up, '', Lines())
-    adjuster.abs_wrkdir = str(tmp_path)
+    adjuster.abs_wrkdir = tmp_path
     (tmp_path / 'subdir1').mkdir()
     (tmp_path / 'subdir2').mkdir()
 
@@ -1232,32 +1247,24 @@ def test_Adjuster_determine_wrksrc__seve
     ]
 
 
-def test_Adjuster_adjust_package_from_extracted_distfiles__empty_wrkdir(tmp_path: pathlib.Path):
-    pkgdir = tmp_path
+def test_Adjuster_adjust__empty_wrkdir(tmp_path: Path):
     wrkdir = tmp_path / 'wrkdir'
-    fake = '''\
-#! /bin/sh
-case $* in
-("show-var VARNAME=WRKDIR") echo '%s' ;;
-(*) "unknown: $*" ;;
-esac
-''' % str(wrkdir)
     up.pkgdir = tmp_path
     wrkdir.mkdir()
-    url = 'https://example.org/distfile-1.0.zip'
-    adjuster = Adjuster(up, url, Lines())
-    adjuster.abs_wrkdir = str(wrkdir)
-    (pkgdir / 'Makefile').write_text('# url2pkg-marker\n')
+    adjuster = Adjuster(up, 'https://example.org/distfile-1.0.zip', Lines())
+    adjuster.abs_wrkdir = wrkdir
+    (tmp_path / 'Makefile').write_text('# url2pkg-marker\n')
     fake_path = tmp_path / 'fake'
-    fake_path.write_text(fake)
+    fake_path.write_text(
+        '#! /bin/sh\n'
+        'case $* in\n'
+        f'("show-var VARNAME=WRKDIR") echo "{wrkdir}" ;;\n'
+        '(*) "unknown: $*" ;;\n'
+        'esac\n')
     fake_path.chmod(0o755)
-
-    prev_make = up.make
     up.make = fake_path
-    try:
-        adjuster.adjust()
-    finally:
-        up.make = prev_make
+
+    adjuster.adjust()
 
     assert detab(adjuster.generate_lines()) == [
         'WRKSRC=         ${WRKDIR}',
@@ -1266,7 +1273,7 @@ esac
     ]
 
 
-def test_Adjuster_adjust_lines_python_module(tmp_path: pathlib.Path):
+def test_Adjuster_adjust_lines_python_module(tmp_path: Path):
     url = 'https://github.com/espressif/esptool/archive/v2.7.tar.gz'
     up.pkgdir = tmp_path
     up.make = 'true'  # the shell command



Home | Main Index | Thread Index | Old Index