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: