diff options
author | Robert Hensing <roberth@users.noreply.github.com> | 2023-10-24 16:18:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-24 16:18:17 +0200 |
commit | c1dc59dc8c452a470a38d6ae2b7ef70c3f5e0ae5 (patch) | |
tree | 878f4e025735c774c1476e25b88f03a40e713aec /pkgs/build-support | |
parent | 2b8b855f85e5ee20e3fb854493f1a8f7b0cb1835 (diff) | |
parent | a6622bf00a033921d1c08a38fb9d64b8feafdf56 (diff) | |
download | nixpkgs-c1dc59dc8c452a470a38d6ae2b7ef70c3f5e0ae5.tar nixpkgs-c1dc59dc8c452a470a38d6ae2b7ef70c3f5e0ae5.tar.gz nixpkgs-c1dc59dc8c452a470a38d6ae2b7ef70c3f5e0ae5.tar.bz2 nixpkgs-c1dc59dc8c452a470a38d6ae2b7ef70c3f5e0ae5.tar.lz nixpkgs-c1dc59dc8c452a470a38d6ae2b7ef70c3f5e0ae5.tar.xz nixpkgs-c1dc59dc8c452a470a38d6ae2b7ef70c3f5e0ae5.tar.zst nixpkgs-c1dc59dc8c452a470a38d6ae2b7ef70c3f5e0ae5.zip |
Merge pull request #263096 from hercules-ci/clean-up-data-writers
Clean up data writers
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/writers/data.nix | 30 | ||||
-rw-r--r-- | pkgs/build-support/writers/test.nix | 14 |
2 files changed, 12 insertions, 32 deletions
diff --git a/pkgs/build-support/writers/data.nix b/pkgs/build-support/writers/data.nix index 48f9bc547ed..45ed5360eae 100644 --- a/pkgs/build-support/writers/data.nix +++ b/pkgs/build-support/writers/data.nix @@ -1,4 +1,4 @@ -{ lib, runCommand, dasel }: +{ lib, pkgs, formats, runCommand, dasel }: let daselBin = lib.getExe dasel; @@ -23,7 +23,7 @@ rec { # writeJSON = makeDataWriter { input = builtins.toJSON; output = "cp $inputPath $out"; }; # myConfig = writeJSON "config.json" { hello = "world"; } # - makeDataWriter = { input ? lib.id, output ? "cp $inputPath $out" }: nameOrPath: data: + makeDataWriter = lib.warn "pkgs.writers.makeDataWriter is deprecated. Use pkgs.writeTextFile." ({ input ? lib.id, output ? "cp $inputPath $out" }: nameOrPath: data: assert lib.or (types.path.check nameOrPath) (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" nameOrPath != null); let name = last (builtins.split "/" nameOrPath); @@ -40,41 +40,25 @@ rec { mkdir -p $out/$(dirname "${nameOrPath}") mv tmp $out/${nameOrPath} ''} - ''; + ''); - # Writes the content to text. - # - # Example: - # writeText "filename.txt" "file content" - writeText = makeDataWriter { - input = toString; - output = "cp $inputPath $out"; - }; + inherit (pkgs) writeText; # Writes the content to a JSON file. # # Example: # writeJSON "data.json" { hello = "world"; } - writeJSON = makeDataWriter { - input = builtins.toJSON; - output = "${daselBin} -f $inputPath -r json -w json > $out"; - }; + writeJSON = (pkgs.formats.json {}).generate; # Writes the content to a TOML file. # # Example: # writeTOML "data.toml" { hello = "world"; } - writeTOML = makeDataWriter { - input = builtins.toJSON; - output = "${daselBin} -f $inputPath -r json -w toml > $out"; - }; + writeTOML = (pkgs.formats.toml {}).generate; # Writes the content to a YAML file. # # Example: # writeYAML "data.yaml" { hello = "world"; } - writeYAML = makeDataWriter { - input = builtins.toJSON; - output = "${daselBin} -f $inputPath -r json -w yaml > $out"; - }; + writeYAML = (pkgs.formats.yaml {}).generate; } diff --git a/pkgs/build-support/writers/test.nix b/pkgs/build-support/writers/test.nix index 2411f8c03a7..005daf0be5b 100644 --- a/pkgs/build-support/writers/test.nix +++ b/pkgs/build-support/writers/test.nix @@ -7,6 +7,7 @@ , python3Packages , pypy3Packages , runCommand +, testers , writers , writeText }: @@ -36,14 +37,7 @@ let let expectedFile = writeText "${file.name}-expected" expected; in - runCommand "run-${file.name}" {} '' - if ! diff -u ${file} ${expectedFile}; then - echo 'test ${file.name} failed' - exit 1 - fi - - touch $out - ''; + testers.testEqualContents { expected = expectedFile; actual = file; assertion = "${file.name} matches"; }; in lib.recurseIntoAttrs { bin = lib.recurseIntoAttrs { @@ -261,7 +255,9 @@ lib.recurseIntoAttrs { toml = expectDataEqual { file = writeTOML "data.toml" { hello = "world"; }; - expected = "hello = 'world'\n"; + expected = '' + hello = "world" + ''; }; yaml = expectDataEqual { |