Loading pkgs/build-support/writers/data.nix +7 −23 Original line number Diff line number Diff line { lib, runCommand, dasel }: { lib, pkgs, formats, runCommand, dasel }: let daselBin = lib.getExe dasel; Loading @@ -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); Loading @@ -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; } pkgs/build-support/writers/test.nix +5 −9 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ , python3Packages , pypy3Packages , runCommand , testers , writers , writeText }: Loading Loading @@ -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 { Loading Loading @@ -261,7 +255,9 @@ lib.recurseIntoAttrs { toml = expectDataEqual { file = writeTOML "data.toml" { hello = "world"; }; expected = "hello = 'world'\n"; expected = '' hello = "world" ''; }; yaml = expectDataEqual { Loading Loading
pkgs/build-support/writers/data.nix +7 −23 Original line number Diff line number Diff line { lib, runCommand, dasel }: { lib, pkgs, formats, runCommand, dasel }: let daselBin = lib.getExe dasel; Loading @@ -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); Loading @@ -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; }
pkgs/build-support/writers/test.nix +5 −9 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ , python3Packages , pypy3Packages , runCommand , testers , writers , writeText }: Loading Loading @@ -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 { Loading Loading @@ -261,7 +255,9 @@ lib.recurseIntoAttrs { toml = expectDataEqual { file = writeTOML "data.toml" { hello = "world"; }; expected = "hello = 'world'\n"; expected = '' hello = "world" ''; }; yaml = expectDataEqual { Loading