Merge master into staging-next
This commit is contained in:
commit
6a7c026ba7
@ -76,19 +76,22 @@ rec {
|
||||
Type:
|
||||
makeOverridable :: (AttrSet -> a) -> AttrSet -> a
|
||||
*/
|
||||
makeOverridable = f: lib.setFunctionArgs
|
||||
(origArgs: let
|
||||
makeOverridable = f:
|
||||
let
|
||||
# Creates a functor with the same arguments as f
|
||||
mirrorArgs = lib.mirrorFunctionArgs f;
|
||||
in
|
||||
mirrorArgs (origArgs:
|
||||
let
|
||||
result = f origArgs;
|
||||
|
||||
# Creates a functor with the same arguments as f
|
||||
copyArgs = g: lib.setFunctionArgs g (lib.functionArgs f);
|
||||
# Changes the original arguments with (potentially a function that returns) a set of new attributes
|
||||
overrideWith = newArgs: origArgs // (if lib.isFunction newArgs then newArgs origArgs else newArgs);
|
||||
|
||||
# Re-call the function but with different arguments
|
||||
overrideArgs = copyArgs (newArgs: makeOverridable f (overrideWith newArgs));
|
||||
overrideArgs = mirrorArgs (newArgs: makeOverridable f (overrideWith newArgs));
|
||||
# Change the result of the function call by applying g to it
|
||||
overrideResult = g: makeOverridable (copyArgs (args: g (f args))) origArgs;
|
||||
overrideResult = g: makeOverridable (mirrorArgs (args: g (f args))) origArgs;
|
||||
in
|
||||
if builtins.isAttrs result then
|
||||
result // {
|
||||
@ -102,8 +105,7 @@ rec {
|
||||
lib.setFunctionArgs result (lib.functionArgs result) // {
|
||||
override = overrideArgs;
|
||||
}
|
||||
else result)
|
||||
(lib.functionArgs f);
|
||||
else result);
|
||||
|
||||
|
||||
/* Call the package function in the file `fn` with the required
|
||||
|
@ -74,7 +74,7 @@ let
|
||||
importJSON importTOML warn warnIf warnIfNot throwIf throwIfNot checkListOfEnum
|
||||
info showWarnings nixpkgsVersion version isInOldestRelease
|
||||
mod compare splitByAndCompare
|
||||
functionArgs setFunctionArgs isFunction toFunction
|
||||
functionArgs setFunctionArgs isFunction toFunction mirrorFunctionArgs
|
||||
toHexString toBaseDigits inPureEvalMode;
|
||||
inherit (self.fixedPoints) fix fix' converge extends composeExtensions
|
||||
composeManyExtensions makeExtensible makeExtensibleWithCustomName;
|
||||
|
@ -241,7 +241,4 @@ Arguments:
|
||||
## To update in the future
|
||||
|
||||
Here's a list of places in the library that need to be updated in the future:
|
||||
- > The file set library is currently somewhat limited but is being expanded to include more functions over time.
|
||||
|
||||
in [the manual](../../doc/functions/fileset.section.md)
|
||||
- If/Once a function exists that can optionally include a path depending on whether it exists, the error message for the path not existing in `_coerce` should mention the new function
|
||||
|
@ -188,7 +188,7 @@ in {
|
||||
- Set `root` to ${toString fileset._internalBase} or any directory higher up. This changes the layout of the resulting store path.
|
||||
- Set `fileset` to a file set that cannot contain files outside the `root` (${toString root}). This could change the files included in the result.''
|
||||
else
|
||||
builtins.seq sourceFilter
|
||||
seq sourceFilter
|
||||
cleanSourceWith {
|
||||
name = "source";
|
||||
src = root;
|
||||
|
@ -448,6 +448,40 @@ rec {
|
||||
isFunction = f: builtins.isFunction f ||
|
||||
(f ? __functor && isFunction (f.__functor f));
|
||||
|
||||
/*
|
||||
`mirrorFunctionArgs f g` creates a new function `g'` with the same behavior as `g` (`g' x == g x`)
|
||||
but its function arguments mirroring `f` (`lib.functionArgs g' == lib.functionArgs f`).
|
||||
|
||||
Type:
|
||||
mirrorFunctionArgs :: (a -> b) -> (a -> c) -> (a -> c)
|
||||
|
||||
Example:
|
||||
addab = {a, b}: a + b
|
||||
addab { a = 2; b = 4; }
|
||||
=> 6
|
||||
lib.functionArgs addab
|
||||
=> { a = false; b = false; }
|
||||
addab1 = attrs: addab attrs + 1
|
||||
addab1 { a = 2; b = 4; }
|
||||
=> 7
|
||||
lib.functionArgs addab1
|
||||
=> { }
|
||||
addab1' = lib.mirrorFunctionArgs addab addab1
|
||||
addab1' { a = 2; b = 4; }
|
||||
=> 7
|
||||
lib.functionArgs addab1'
|
||||
=> { a = false; b = false; }
|
||||
*/
|
||||
mirrorFunctionArgs =
|
||||
# Function to provide the argument metadata
|
||||
f:
|
||||
let
|
||||
fArgs = functionArgs f;
|
||||
in
|
||||
# Function to set the argument metadata to
|
||||
g:
|
||||
setFunctionArgs g fArgs;
|
||||
|
||||
/*
|
||||
Turns any non-callable values into constant functions.
|
||||
Returns callable values as is.
|
||||
|
@ -64,7 +64,6 @@ in {
|
||||
path = [ pkg ];
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Environment = "TZ=${config.time.timeZone}";
|
||||
ExecStartPre = "${pkgs.coreutils}/bin/install -m644 ${ymlFile} ${configFile}";
|
||||
ExecStart = "${pkg}/bin/flexget -c ${configFile} daemon start";
|
||||
ExecStop = "${pkg}/bin/flexget -c ${configFile} daemon stop";
|
||||
|
@ -20,16 +20,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "jujutsu";
|
||||
version = "0.10.0";
|
||||
version = "0.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "martinvonz";
|
||||
repo = "jj";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-LJW4Px3K5cz6RJ4sUbwUXsp2+rzEW5wowi+DALHajYA=";
|
||||
hash = "sha256-yEW7+0MnJlW0WeZ6UItaCDrihPLA52mLcu15tJwZx9w=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-fs1cWhBFp2u3HiEx/mMnbwvgwKo97KmftA/sr4dGsiM=";
|
||||
cargoHash = "sha256-xA9SDq1Kc0u8qFEPFFCic9uwE2Y/BXJzUHBCs1Czxtw=";
|
||||
|
||||
cargoBuildFlags = [ "--bin" "jj" ]; # don't install the fake editors
|
||||
useNextest = true; # nextest is the upstream integration framework
|
||||
|
@ -13,7 +13,7 @@ let
|
||||
|
||||
# Derivations built with `buildPythonPackage` can already be overridden with `override`, `overrideAttrs`, and `overrideDerivation`.
|
||||
# This function introduces `overridePythonAttrs` and it overrides the call to `buildPythonPackage`.
|
||||
makeOverridablePythonPackage = f: origArgs:
|
||||
makeOverridablePythonPackage = f: lib.mirrorFunctionArgs f (origArgs:
|
||||
let
|
||||
args = lib.fix (lib.extends
|
||||
(_: previousAttrs: {
|
||||
@ -30,7 +30,7 @@ let
|
||||
overridePythonAttrs = newArgs: makeOverridablePythonPackage f (overrideWith newArgs);
|
||||
__functor = self: result;
|
||||
}
|
||||
else result;
|
||||
else result);
|
||||
|
||||
mkPythonDerivation = if python.isPy3k then
|
||||
./mk-python-derivation.nix
|
||||
|
@ -4,7 +4,7 @@
|
||||
, semgrep
|
||||
}:
|
||||
let
|
||||
version = "0.1.7";
|
||||
version = "0.1.11";
|
||||
in
|
||||
python3.pkgs.buildPythonApplication {
|
||||
pname = "open-interpreter";
|
||||
@ -15,7 +15,7 @@ python3.pkgs.buildPythonApplication {
|
||||
owner = "KillianLucas";
|
||||
repo = "open-interpreter";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-U+GKvlFY9vkjXaPI0H5RsoMFLlLq1+IuSy/cOj/LNSw=";
|
||||
hash = "sha256-viUMGUBy5UNWag6P8tXE4TcJIx53Q/tASNV3bmCCK0g=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
Loading…
Reference in New Issue
Block a user