2025-09-11 21:39:34 -05:00
|
|
|
let servers = [isaiah jeremiah zeke genesis vm-gitlab vm-jellyfin]
|
|
|
|
|
|
2025-09-11 12:15:39 -05:00
|
|
|
def par-map [ items: list, c: closure ] {
|
|
|
|
|
let results = $items | par-each -k $c
|
|
|
|
|
$items | enumerate | reduce -f {} {|e, a| $a | upsert $e.item { $results | get $e.index }}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def --env unlock [] {
|
|
|
|
|
if "BW_SESSION" not-in $env {
|
|
|
|
|
$env.BW_SESSION = ^bw unlock --raw
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def rebuild [] {
|
|
|
|
|
if (uname | get operating-system) == "Darwin" {
|
|
|
|
|
sudo darwin-rebuild switch
|
|
|
|
|
} else {
|
|
|
|
|
let hostname = uname | get nodename
|
|
|
|
|
let build = ^nom build $"/etc/nixos#nixosConfigurations.($hostname).config.system.build.toplevel" | complete
|
|
|
|
|
if build.exit_code == 0 {
|
|
|
|
|
nvd diff /run/current-system result
|
|
|
|
|
sudo nixos-rebuild switch
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def deploy [ $host: string, $build: string = "" ] {
|
|
|
|
|
mut buildhost = $build
|
|
|
|
|
if $build == "" {
|
|
|
|
|
$buildhost = $host
|
|
|
|
|
}
|
|
|
|
|
if $buildhost == "linode" {
|
|
|
|
|
$buildhost = "isaiah"
|
|
|
|
|
}
|
2025-09-11 23:01:00 -05:00
|
|
|
nixos-rebuild switch --sudo --use-substitutes --target-host $host --build-host $buildhost
|
2025-09-11 12:15:39 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def ff [ $file: string ] {
|
|
|
|
|
ls **/* | where name =~ $file
|
|
|
|
|
}
|
2025-09-11 21:39:34 -05:00
|
|
|
|
|
|
|
|
def update_all [] {
|
2025-09-11 23:01:00 -05:00
|
|
|
par-map $servers {|e| deploy $e | complete} | explore
|
2025-09-11 21:39:34 -05:00
|
|
|
}
|
2025-09-12 13:25:00 -05:00
|
|
|
|
|
|
|
|
def bake [template: string] {
|
|
|
|
|
let copier = "~/.copier-templates" | path expand
|
|
|
|
|
if not ($copier | path exists) {
|
|
|
|
|
git clone srcpub:greg/copier-templates.git $copier
|
|
|
|
|
}
|
|
|
|
|
let srcdir = [$copier $template] | path join
|
|
|
|
|
print $srcdir
|
|
|
|
|
copier copy $srcdir .
|
|
|
|
|
}
|