ahora suena
r/o

suena / flake.nix

1
{
2
description = "now playing";
3
4
inputs = {
5
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
6
flake-utils.url = "github:numtide/flake-utils";
7
arduino-nix.url = "github:clerie/arduino-nix?ref=clerie/arduino-env";
8
arduino-library-index = {
9
url = "github:bouk/arduino-indexes/library_index";
10
flake = false;
11
};
12
arduino-package-index = {
13
url = "github:bouk/arduino-indexes/package_index";
14
flake = false;
15
};
16
};
17
18
outputs = {
19
self,
20
nixpkgs,
21
flake-utils,
22
arduino-nix,
23
arduino-package-index,
24
arduino-library-index,
25
...
26
}: let
27
overlays = [
28
arduino-nix.overlay
29
(arduino-nix.mkArduinoPackageOverlay "${arduino-package-index}/package_index.json")
30
(arduino-nix.mkArduinoPackageOverlay (builtins.fetchTree {
31
type = "file";
32
url = "http://raw.githubusercontent.com/SolderedElectronics/Dasduino-Board-Definitions-for-Arduino-IDE/b5ee4f5b2675c22da9fc330d286f53e033418167/package_Dasduino_Boards_index.json";
33
narHash = "sha256-Lv5OD4q7Q7T4XlLkQNPJfPHaAsoAjN6u+TMLvAYmU3Y=";
34
}))
35
(arduino-nix.mkArduinoLibraryOverlay "${arduino-library-index}/library_index.json")
36
];
37
in
38
flake-utils.lib.eachDefaultSystem (
39
system: let
40
pkgs = import nixpkgs {inherit system overlays;};
41
42
arduinoEnv = pkgs.mkArduinoEnv {
43
libraries = with pkgs.arduinoLibraries; [
44
(arduino-nix.latestVersion InkplateLibrary)
45
];
46
47
packages = with pkgs.arduinoPackages; [
48
platforms.Inkplate_Boards.esp32."7.0.0"
49
];
50
};
51
in {
52
formatter = pkgs.alejandra;
53
54
packages.default = arduinoEnv.buildArduinoSketch {
55
name = "suena";
56
src = ./suena;
57
fqbn = "Inkplate_Boards:esp32:Inkplate6";
58
};
59
60
devShells.default = pkgs.mkShell {
61
name = "suena";
62
ARDUINO_DIRECTORIES_DOWNLOADS = ".";
63
buildInputs = [arduinoEnv];
64
};
65
}
66
);
67
}
68