summary refs log tree commit diff
diff options
context:
space:
mode:
authorRaito Bezarius <masterancpp@gmail.com>2022-11-30 17:55:09 +0100
committerJörg Thalheim <joerg@thalheim.io>2022-12-08 21:50:35 +0100
commiteca3b89ac269c0c08cb522d5d9fd5f5395b651a5 (patch)
treedc98092cba8ec25697960a169f222528e1dfae63
parenta6dd75809d4ad7650a17994c76ca700434a06564 (diff)
downloadnixpkgs-eca3b89ac269c0c08cb522d5d9fd5f5395b651a5.tar
nixpkgs-eca3b89ac269c0c08cb522d5d9fd5f5395b651a5.tar.gz
nixpkgs-eca3b89ac269c0c08cb522d5d9fd5f5395b651a5.tar.bz2
nixpkgs-eca3b89ac269c0c08cb522d5d9fd5f5395b651a5.tar.lz
nixpkgs-eca3b89ac269c0c08cb522d5d9fd5f5395b651a5.tar.xz
nixpkgs-eca3b89ac269c0c08cb522d5d9fd5f5395b651a5.tar.zst
nixpkgs-eca3b89ac269c0c08cb522d5d9fd5f5395b651a5.zip
cue: init writeCueValidator
This adds `writeCueValidator`, which writes a Cue-validating shell script
(see https://cuelang.org/).
-rw-r--r--pkgs/development/tools/cue/validator.nix12
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 14 insertions, 0 deletions
diff --git a/pkgs/development/tools/cue/validator.nix b/pkgs/development/tools/cue/validator.nix
new file mode 100644
index 00000000000..3113628ae55
--- /dev/null
+++ b/pkgs/development/tools/cue/validator.nix
@@ -0,0 +1,12 @@
+{ cue, writeShellScript, lib }:
+cueSchemaFile: { document ? null }:
+  writeShellScript "validate-using-cue"
+  ''${cue}/bin/cue \
+      --all-errors \
+      --strict \
+      vet \
+      --concrete \
+      "$1" \
+      ${cueSchemaFile} \
+      ${lib.optionalString (document != null) "-d \"${document}\""}
+  ''
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8825c82a648..e0d0a5cf44b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2932,6 +2932,8 @@ with pkgs;
     buildGoModule = buildGo118Module; # tests fail with 1.19
   };
 
+  writeCueValidator = callPackage ../development/tools/cue/validator.nix { };
+
   cuelsp = callPackage ../development/tools/cuelsp {};
 
   cyclone-scheme = callPackage ../development/interpreters/cyclone { };