{ inputs = { nixpkgs.url = "nixpkgs/nixpkgs-unstable"; }; outputs = { self, nixpkgs, }: let systems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"]; eachSystem = f: nixpkgs.lib.genAttrs systems (system: f nixpkgs.legacyPackages.${system}); in { formatter = eachSystem (pkgs: pkgs.alejandra); packages = eachSystem (pkgs: rec { default = nix-plugin-pijul; nix-plugin-pijul = pkgs.callPackage ./package.nix {nix = pkgs.nixVersions.latest;}; }); checks = eachSystem (pkgs: let localRepoCheck = nix: pkgs.runCommand "localRepoCheck-${nix.name}" { nativeBuildInputs = [ pkgs.pijul nix ]; } '' export HOME=$(mktemp -d) export EDITOR=true pijul identity new --no-link --no-prompt --display-name 'Test User' --email 'test@example.com' pijul init repo cd repo echo "it works" > foo pijul add foo pijul record --message 'Add foo' output=$( nix \ --option plugin-files ${self.packages.${pkgs.system}.nix-plugin-pijul.override {inherit nix;}}/lib/nix/plugins/pijul.so \ --extra-experimental-features 'nix-command flakes' \ eval --impure --raw --expr "builtins.readFile ((builtins.fetchTree \"pijul+file://$PWD\") + \"/foo\")" ) echo $output [[ "$output" = "it works" ]] mkdir $out ''; in { nix_2_18 = localRepoCheck pkgs.nixVersions.nix_2_18; nix_2_19 = localRepoCheck pkgs.nixVersions.nix_2_19; nix_2_20 = localRepoCheck pkgs.nixVersions.nix_2_20; nix_2_21 = localRepoCheck pkgs.nixVersions.nix_2_21; nix_2_22 = localRepoCheck pkgs.nixVersions.nix_2_22; nix_2_23 = localRepoCheck pkgs.nixVersions.nix_2_23; nix_2_24 = localRepoCheck pkgs.nixVersions.nix_2_24; stable = localRepoCheck pkgs.nixVersions.stable; latest = localRepoCheck pkgs.nixVersions.latest; }); }; }