···11+MIT No Attribution
22+33+Copyright 2025 Sona Tau Estrada Rivera <sona@stau.space>
44+55+Permission is hereby granted, free of charge, to any person obtaining a copy of this
66+software and associated documentation files (the "Software"), to deal in the Software
77+without restriction, including without limitation the rights to use, copy, modify,
88+merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
99+permit persons to whom the Software is furnished to do so.
1010+1111+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
1212+INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
1313+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
1414+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
1515+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
1616+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
···11+22+33+44+Example of how to run the embedded device:
55+66+```sh
77+make edevice.py ADDRESS=<server address> PORT=<server port>
88+```
99+1010+1111+where `<server address>` is the IP address of the cluster, and `<server port>`
1212+is the port number of the cluster.
···11+{
22+ description = "Declarations for the environment that this project will use.";
33+44+ # Flake inputs
55+ inputs.nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1";
66+77+ # Flake outputs
88+ outputs = inputs:
99+ let
1010+ # The systems supported for this flake
1111+ supportedSystems = [
1212+ "x86_64-linux" # 64-bit Intel/AMD Linux
1313+ "aarch64-linux" # 64-bit ARM Linux
1414+ "x86_64-darwin" # 64-bit Intel macOS
1515+ "aarch64-darwin" # 64-bit ARM macOS
1616+ ];
1717+1818+ # Helper to provide system-specific attributes
1919+ forEachSupportedSystem = f: inputs.nixpkgs.lib.genAttrs supportedSystems (system: f {
2020+ pkgs = import inputs.nixpkgs { inherit system; };
2121+ });
2222+ in
2323+ {
2424+ devShells = forEachSupportedSystem ({ pkgs }: {
2525+ default = pkgs.mkShell {
2626+ # The Nix packages provided in the environment
2727+ # Add any you need here
2828+ packages = with pkgs; [
2929+ gcc
3030+ gnumake
3131+ ];
3232+3333+ # Set any environment variables for your dev shell
3434+ env = { };
3535+3636+ # Add any shell logic you want executed any time the environment is activated
3737+ shellHook = ''
3838+ '';
3939+ };
4040+ });
4141+ };
4242+}