let contentAddressedByDefault = builtins.getEnv "NIX_TESTS_CA_BY_DEFAULT" == "1"; caArgs = if contentAddressedByDefault then { __contentAddressed = true; outputHashMode = "recursive"; outputHashAlgo = "sha256"; } else {}; in rec { shell = "@bash@"; path = "@ls@"; system = "@system@"; shared = builtins.getEnv "_NIX_TEST_SHARED"; hasSuffix = ext: fileName: let lenFileName = builtins.stringLength fileName; lenExt = builtins.stringLength ext; in !(builtins.lessThan lenFileName lenExt) && builtins.substring (builtins.sub lenFileName lenExt) lenFileName fileName == ext; id = x: x; mkDerivation = args: derivation ({ inherit system shell; builder = shell; args = ["-e" args.builder or (builtins.toFile "builder-${args.name}.sh" '' if [ -e "$NIX_ATTRS_SH_FILE" ]; then source $NIX_ATTRS_SH_FILE; fi; eval "$buildCommand" '')]; PATH = path; } // caArgs // removeAttrs args ["builder" "meta"]) // { meta = args.meta or {}; }; }