mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-01-11 20:40:24 +01:00
75 lines
1.9 KiB
Nu
75 lines
1.9 KiB
Nu
# ================= NixOS related =========================
|
|
|
|
export def nixos-switch [
|
|
name: string
|
|
mode: string
|
|
] {
|
|
if "debug" == $mode {
|
|
# show details via nix-output-monitor
|
|
nom build $".#nixosConfigurations.($name).config.system.build.toplevel" --show-trace --verbose
|
|
nixos-rebuild switch --use-remote-sudo --flake $".#($name)" --show-trace --verbose
|
|
} else {
|
|
nixos-rebuild switch --use-remote-sudo --flake $".#($name)"
|
|
}
|
|
}
|
|
|
|
|
|
# ====================== Misc =============================
|
|
|
|
export def make-editable [
|
|
path: string
|
|
] {
|
|
let tmpdir = (mktemp -d)
|
|
rsync -avz --copy-links $"($path)/" $tmpdir
|
|
rsync -avz --copy-links --chmod=D2755,F744 $"($tmpdir)/" $path
|
|
}
|
|
|
|
|
|
# ================= macOS related =========================
|
|
|
|
export def darwin-build [
|
|
name: string
|
|
mode: string
|
|
] {
|
|
let target = $".#darwinConfigurations.($name).system"
|
|
if "debug" == $mode {
|
|
nom build $target --extra-experimental-features "nix-command flakes" --show-trace --verbose
|
|
} else {
|
|
nix build $target --extra-experimental-features "nix-command flakes"
|
|
}
|
|
}
|
|
|
|
export def darwin-switch [
|
|
name: string
|
|
mode: string
|
|
] {
|
|
if "debug" == $mode {
|
|
./result/sw/bin/darwin-rebuild switch --flake $".#($name)" --show-trace --verbose
|
|
} else {
|
|
./result/sw/bin/darwin-rebuild switch --flake $".#($name)"
|
|
}
|
|
}
|
|
|
|
export def darwin-rollback [] {
|
|
./result/sw/bin/darwin-rebuild --rollback
|
|
}
|
|
|
|
# ==================== Virutal Machines related =====================
|
|
|
|
# Build and upload a VM image
|
|
export def upload-vm [
|
|
name: string
|
|
mode: string
|
|
] {
|
|
let target = $".#($name)"
|
|
if "debug" == $mode {
|
|
nom build $target --show-trace --verbose
|
|
} else {
|
|
nix build $target
|
|
}
|
|
|
|
let remote = $"root@rakushun:/var/lib/caddy/fileserver/vms/kubevirt-($name).qcow2"
|
|
rsync -avz --progress --copy-links result $remote
|
|
}
|
|
|