{ lib, pkgs, config, inputs, ... }: { name = "apidae-systems"; infoSections = { name = [ config.name ]; }; scripts = { slides.exec = "bun dev"; up.exec = ''devenv up "$@"''; clean.exec = "git clean -fdX"; docs.exec = "bunx likec4 start"; tio.exec = ''HOME="$DEVENV_ROOT" ${pkgs.tio}/bin/tio "$@"''; }; enterShell = '' export PATH="$HOME/.cargo/bin:$PATH"; if [ -f "\$\{ESPUP_EXPORT_FILE:-}" ]; then . "$ESPUP_EXPORT_FILE" elif [ -f "$HOME/export-esp.sh" ]; then . "$HOME/export-esp.sh" fi if command -v xtensa-esp-elf-gcc >/dev/null 2>&1; then echo -e "\033[36m[devenv:embassy]:\033[0m\033[32m Espressif Rust toolchain ready 🦀\033[0m" else echo -e "\033[36m[devenv:embassy]:\033[0m\033[34m xtensa-esp-elf-gcc \033[0m\033[31mtoolchain not found ⚠️\033[0m" echo -e "\033[36m[devenv:embassy]:\033[0m\033[33m install with \033[0m\033[35mespup install && direnv allow\033[0m\n" fi ''; cachix = { enable = true; pull = [ "cachix" "oxalica" "devenv" "nixpkgs" "mfarabi" "nix-community" "pre-commit-hooks" ]; }; languages = rec { nix.enable = true; shell.enable = true; cplusplus.enable = true; c = { enable = true; debugger = pkgs.gdb; }; rust = { enable = true; channel = "stable"; # lld.enable = true; # FIXME: breaks dioxus # mold.enable = true; # FIXME: breaks loco components = [ "rustc" "cargo" "clippy" "rustfmt" "rust-std" "rust-src" "rust-analyzer" ]; }; typescript.enable = javascript.enable; javascript = rec { enable = true; bun.enable = enable; package = pkgs.nodejs_24; # FIXME: find out why this crashes for intel macbooks # pnpm.enable = !(pkgs.stdenv.isDarwin && pkgs.stdenv.isx86_64); }; }; }