feat: esphome updates

This commit is contained in:
2025-09-29 15:59:12 +02:00
parent b48ec98cb3
commit bf5c7a74cb
19 changed files with 341 additions and 281 deletions

View File

@@ -0,0 +1,49 @@
{ config, lib, pkgs, ... }:
let
user = "dominik";
home = "/home/${user}";
npmPrefix = "${home}/.npm-global";
node = pkgs.nodejs; # or pkgs.nodejs_20
in {
home-manager.users.dominik = { lib, pkgs, ... }: {
home.packages = with pkgs; [
node
gnutar # provides `tar`
gzip # provides `gzip` used by tar
unzip
python314 # useful for codex model use
jq # useful for JSON processing
];
# Ensure ~/.npmrc with a user prefix (no sudo needed)
home.file.".npmrc"= {
text = ''
prefix=${npmPrefix}
'';
force = true;
};
# Ensure the npm bin dir is on PATH for all shells
home.sessionPath = [
"${npmPrefix}/bin"
];
# Nice-to-have: visible variables in the shell
home.sessionVariables = {
NPM_CONFIG_PREFIX = npmPrefix;
};
# Auto-install @openai/codex if it's not already there
# (idempotent on each `home-manager switch`)
home.activation.installCodexCli = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
export PATH=${node}/bin:${pkgs.gnutar}/bin:${pkgs.gzip}/bin:${pkgs.unzip}/bin:${pkgs.curl}/bin:$PATH
mkdir -p ${npmPrefix}
if ! command -v codex >/dev/null 2>&1; then
echo "Installing @openai/codex globally..."
# --global uses prefix from ~/.npmrc; PATH has node for postinstall
${node}/bin/npm install -g @openai/codex
fi
'';
};
}