mirror of
https://github.com/kp2pml30/dotfiles.git
synced 2026-04-14 14:21:45 +04:00
chore: update
This commit is contained in:
parent
eaccf45596
commit
d3790a167b
27 changed files with 715 additions and 229 deletions
64
nix/claude-vm/installer.nix
Normal file
64
nix/claude-vm/installer.nix
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
{ pkgs, lib, rootPath, modulesPath, ... }:
|
||||
let
|
||||
install-claude-vm = pkgs.writeShellScriptBin "install-claude-vm" ''
|
||||
set -euo pipefail
|
||||
|
||||
DISK="/dev/vda"
|
||||
|
||||
echo "=== claude-vm installer ==="
|
||||
echo "Target disk: $DISK"
|
||||
|
||||
# Partition: MBR with single root partition
|
||||
echo "Partitioning..."
|
||||
parted -s "$DISK" -- \
|
||||
mklabel msdos \
|
||||
mkpart primary ext4 1MiB 100%
|
||||
|
||||
# Format with label
|
||||
echo "Formatting..."
|
||||
mkfs.ext4 -L nixos "''${DISK}1"
|
||||
|
||||
# Mount
|
||||
echo "Mounting..."
|
||||
mount "''${DISK}1" /mnt
|
||||
|
||||
# Copy flake source
|
||||
echo "Copying flake to /mnt/dotfiles..."
|
||||
mkdir -p /mnt/dotfiles
|
||||
cp -a /etc/dotfiles-src/. /mnt/dotfiles/
|
||||
|
||||
# Install
|
||||
echo "Running nixos-install..."
|
||||
nixos-install --flake /mnt/dotfiles#claude-vm --no-root-passwd --show-trace
|
||||
|
||||
echo "=== Installation complete! Shutting down... ==="
|
||||
${pkgs.systemd}/bin/systemctl poweroff
|
||||
'';
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
"${modulesPath}/installer/cd-dvd/installation-cd-minimal.nix"
|
||||
];
|
||||
|
||||
# Serial console for -nographic QEMU
|
||||
boot.kernelParams = [ "console=ttyS0,115200n8" ];
|
||||
boot.loader.timeout = lib.mkForce 5;
|
||||
|
||||
environment.etc."dotfiles-src".source = rootPath;
|
||||
|
||||
environment.systemPackages = [ install-claude-vm ];
|
||||
|
||||
# Auto-run installer on boot
|
||||
systemd.services.auto-install = {
|
||||
description = "Automatic claude-vm installation";
|
||||
after = [ "multi-user.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = with pkgs; [ nix nixos-install-tools util-linux coreutils git curl wget binutils e2fsprogs dosfstools parted ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "${install-claude-vm}/bin/install-claude-vm";
|
||||
StandardOutput = "journal+console";
|
||||
StandardError = "journal+console";
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue