From 33ffb05d390987802fe939f9c9a3d6a451076535 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Fri, 25 Jun 2021 14:39:59 +0200 Subject: writers: Allow string paths Before this change, it was not possible to use string paths, because then the `types.str.check` would succeed. So the only paths that could be used were ones from the local filesystem via e.g. `./some/path`. We can easily fix this by using `types.path.check` instead to determine whether we are dealing with a path. This notably also allows using Nix-fetched sources as the content, e.g. `fetchFromGitHub { ... } + "/some/file"` --- pkgs/build-support/writers/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/build-support/writers/default.nix b/pkgs/build-support/writers/default.nix index 47919c251af..5a70bcbe3cf 100644 --- a/pkgs/build-support/writers/default.nix +++ b/pkgs/build-support/writers/default.nix @@ -15,12 +15,12 @@ rec { name = last (builtins.split "/" nameOrPath); in - pkgs.runCommandLocal name (if (types.str.check content) then { - inherit content interpreter; - passAsFile = [ "content" ]; - } else { + pkgs.runCommandLocal name (if types.path.check content then { inherit interpreter; contentPath = content; + } else { + inherit content interpreter; + passAsFile = [ "content" ]; }) '' # On darwin a script cannot be used as an interpreter in a shebang but # there doesn't seem to be a limit to the size of shebang and multiple -- cgit 1.4.1