X-Git-Url: http://git.scottworley.com/pinch/blobdiff_plain/1d48f551985ae8b135e4e052338d2bf3d5774ef6..9eecb073aa16525d4a09c62178f32ba8b7788cc5:/pinch.py diff --git a/pinch.py b/pinch.py index c26070b..9555d74 100644 --- a/pinch.py +++ b/pinch.py @@ -302,18 +302,17 @@ def digest_file(filename: str) -> Digest16: return Digest16(hasher.hexdigest()) -_experimental_flag_needed = None +@functools.lru_cache +def _experimental_flag_needed(v: Verification) -> bool: + v.status('Checking Nix version') + process = subprocess.run(['nix', '--help'], stdout=subprocess.PIPE) + v.result(process.returncode == 0) + return b'--experimental-features' in process.stdout def _nix_command(v: Verification) -> List[str]: - global _experimental_flag_needed - if _experimental_flag_needed is None: - v.status('Checking Nix version') - process = subprocess.run(['nix', '--help'], stdout=subprocess.PIPE) - v.result(process.returncode == 0) - _experimental_flag_needed = b'--experimental-features' in process.stdout return ['nix', '--experimental-features', - 'nix-command'] if _experimental_flag_needed else ['nix'] + 'nix-command'] if _experimental_flag_needed(v) else ['nix'] def to_Digest16(v: Verification, digest32: Digest32) -> Digest16: