riotee/flake.nix
2025-07-31 11:30:00 +02:00

51 lines
1.5 KiB
Nix

{
outputs = { self, nixpkgs, ... }: let
lib = nixpkgs.lib;
scan = base: lib.attrsets.mapAttrs' (name: _: {
name = lib.strings.removeSuffix ".nix" (builtins.baseNameOf name);
value = import "${base}/${name}";
}) (builtins.readDir base);
sdk = fetch: fetch {
owner = "NessieCircuits";
repo = "Riotee_SDK";
tag = "v1.2.0";
fetchSubmodules = true;
hash = "sha256-oeJ+oYu2DiB39i1jMggqddPPssrd4QBthsUI6N82KOs=";
};
apps = system: pkgs: {
default = self.apps.${system}.probe;
probe = { type = "app"; program = "${self.packages.${system}.riotee-probe}/bin/riotee-probe"; };
};
packages = let
packages = scan ./packages;
in system: pkgs: builtins.mapAttrs (_: fn: pkgs.callPackage fn {}) packages;
devShells = system: pkgs: {
default = pkgs.mkShell {
buildInputs = with pkgs; [
self.packages.${system}.riotee-probe
gnumake
gcc-arm-embedded
];
shellHook = ''
export RIOTEE_SDK_ROOT="${sdk pkgs.fetchFromGitHub}"
'';
};
};
overlays = system: pkgs: {
default = self.overlays.${system}.riotee;
riotee = final: prev: prev // (packages system pkgs);
};
in {
apps = builtins.mapAttrs apps nixpkgs.legacyPackages;
packages = builtins.mapAttrs packages nixpkgs.legacyPackages;
devShells = builtins.mapAttrs devShells nixpkgs.legacyPackages;
overlays = builtins.mapAttrs overlays nixpkgs.legacyPackages;
};
}