lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

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 }