feat: add build tools, nugets, and persistent claude-vm home dir #5

Merged
mrtz merged 1 commits from dotnet-and-stuff into main 2026-04-07 08:36:10 +00:00
+40 -4
View File
@@ -39,6 +39,16 @@ let
target = "/mnt/claude-vm-config"; target = "/mnt/claude-vm-config";
securityModel = "none"; securityModel = "none";
}; };
claude = {
source = ''"$CLAUDE_HOME_DIR"'';
target = "/home/claude";
securityModel = "none";
};
nuget = {
source = ''"$NUGET_DIR"'';
target = "/home/claude/.nuget";
securityModel = "none";
};
}; };
}; };
@@ -62,11 +72,19 @@ let
programs.command-not-found.enable = false; programs.command-not-found.enable = false;
# packages # packages
environment.systemPackages = [ environment.systemPackages = with pkgs; [
claudeCode claudeCode
pkgs.git git
pkgs.curl curl
pkgs.vim vim
dotnetCorePackages.sdk_10_0
dapr-cli
bun
just
yaml-language-server
nodePackages.typescript-language-server
# fsautocomplete
# sqlfluff
]; ];
# login shell launches claude # login shell launches claude
@@ -81,6 +99,10 @@ let
done < /mnt/claude-vm-config/claude-args done < /mnt/claude-vm-config/claude-args
fi fi
# if [ -f /mnt/claude-vm-config/gitconfig ]; then
# cp /mnt/claude-vm-config/gitconfig ~/.gitconfig
# fi
cd /workspace 2>/dev/null || true cd /workspace 2>/dev/null || true
exec claude "''${args[@]}" exec claude "''${args[@]}"
''; '';
@@ -106,7 +128,21 @@ in
touch "$CONFIG_DIR/claude-args" touch "$CONFIG_DIR/claude-args"
fi fi
if [ -e ~/.config/git/config ]; then
cp ~/.config/git/config $CONFIG_DIR/gitconfig
fi
[ ! -d ~/.claude-vm ] && mkdir -p ~/.claude-vm
if [ -e ~/.nuget ]; then
export NUGET_DIR=~/.nuget
else
mkdir -p $CONFIG_DIR/nuget
export NUGET_DIR=$CONFIG_DIR/nuget
fi
export CLAUDE_VM_CONFIG_DIR="$CONFIG_DIR" export CLAUDE_VM_CONFIG_DIR="$CONFIG_DIR"
export CLAUDE_HOME_DIR=~/.claude-vm
export WORKSPACE_DIR="$(pwd)" export WORKSPACE_DIR="$(pwd)"
${vmBuild}/bin/run-claude-vm-vm ${vmBuild}/bin/run-claude-vm-vm
''; '';