library.nix (1529B)
1 { 2 lib, 3 pkgs, 4 version, 5 }: 6 let 7 root = ../..; 8 releaseSource = lib.fileset.toSource { 9 inherit root; 10 fileset = lib.fileset.unions [ 11 ../../Cargo.toml 12 ../../Cargo.lock 13 ../../CHANGELOG.md 14 ../../LICENSE-APACHE 15 ../../LICENSE-MIT 16 ../../README.md 17 ../../contracts 18 ../../crates 19 ]; 20 }; 21 package = pkgs.runCommand "radroots-lib-release-bundle-${version}" { } '' 22 install -d "$out/share/radroots-lib" 23 cp -R ${releaseSource}/. "$out/share/radroots-lib/" 24 cat > "$out/share/radroots-lib/release-bundle.json" <<EOF 25 {"artifact":"public_library_workspace_release_bundle","package":"radroots","version":"${version}"} 26 EOF 27 ''; 28 inspector = pkgs.writeShellScript "radroots-lib-bundle-inspect" '' 29 set -euo pipefail 30 ${pkgs.coreutils}/bin/test -f ${package}/share/radroots-lib/Cargo.toml 31 ${pkgs.coreutils}/bin/test -f ${package}/share/radroots-lib/Cargo.lock 32 exec ${pkgs.coreutils}/bin/cat ${package}/share/radroots-lib/release-bundle.json 33 ''; 34 in 35 { 36 inherit package; 37 app = { 38 type = "app"; 39 program = "${inspector}"; 40 meta.description = "Inspect the installed Radroots Lib release bundle"; 41 }; 42 check = pkgs.runCommand "radroots-lib-release-bundle-check" { } '' 43 test -f ${package}/share/radroots-lib/Cargo.toml 44 test -f ${package}/share/radroots-lib/Cargo.lock 45 test -f ${package}/share/radroots-lib/release-bundle.json 46 test ! -e ${package}/share/radroots-lib/build/nix/service/fixture-service 47 touch "$out" 48 ''; 49 }