aboutsummaryrefslogtreecommitdiff
path: root/tests/lang/eval-okay-flake-ref-to-string.nix
diff options
context:
space:
mode:
authorAlex Ameen <alex.ameen.tx@gmail.com>2023-07-25 12:43:33 -0500
committerGitHub <noreply@github.com>2023-07-25 17:43:33 +0000
commit2d1d81114d72ace89ce08cd3bc93f4eb27a2975d (patch)
tree68134064a86a69ecb65a698cd0a5e71aa12cc5d2 /tests/lang/eval-okay-flake-ref-to-string.nix
parent484c820c481ce1aabf0fe51e478eb0187bc68fb6 (diff)
Add `parseFlakeRef` and `flakeRefToString` builtins (#8670)
Over the last year or so I've run into several use cases where I need to parse and/or serialize URLs for use by `builtins.fetchTree` or `builtins.getFlake`, largely in order to produce _lockfile-like_ files for lang2nix frameworks or tools which use `nix` internally to drive builds. I've gone through the painstaking process of emulating `nix::FlakeRef::fromAttrs` and `nix::parseFlakeRef` several times with mixed success; but these are difficult to create and even harder to maintain if I hope to stay aligned with changes to the real parser/serializer. I understand why adding new `builtins` isn't something we want to do flagrantly. I'm recommending this addition simply because I keep encountering use cases where I need to parse/serialize these URIs in `nix` expressions, and I want a reliable solution. Co-authored-by: Eelco Dolstra <edolstra@gmail.com> Co-authored-by: John Ericson <git@JohnEricson.me>
Diffstat (limited to 'tests/lang/eval-okay-flake-ref-to-string.nix')
-rw-r--r--tests/lang/eval-okay-flake-ref-to-string.nix7
1 files changed, 7 insertions, 0 deletions
diff --git a/tests/lang/eval-okay-flake-ref-to-string.nix b/tests/lang/eval-okay-flake-ref-to-string.nix
new file mode 100644
index 000000000..dbb4e5b2a
--- /dev/null
+++ b/tests/lang/eval-okay-flake-ref-to-string.nix
@@ -0,0 +1,7 @@
+builtins.flakeRefToString {
+ type = "github";
+ owner = "NixOS";
+ repo = "nixpkgs";
+ ref = "23.05";
+ dir = "lib";
+}