feat: esphome updates
This commit is contained in:
49
hosts/nb/users/codex-cli.nix
Normal file
49
hosts/nb/users/codex-cli.nix
Normal 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
|
||||
'';
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user