riotee/flake.nix
2025-07-30 16:48:04 +02:00

44 lines
1.2 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";
hash = "sha256-1ZFvbGiTzAuBnKGUe/MAAI4D+d+jl/LCLcYqthkxB5M=";
};
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 {
packages = builtins.mapAttrs packages nixpkgs.legacyPackages;
devShells = builtins.mapAttrs devShells nixpkgs.legacyPackages;
overlays = builtins.mapAttrs overlays nixpkgs.legacyPackages;
};
}