Something went wrong. Try again.
NixOS, nix-darwin and home manager configurations for various my various devices.
nix-darwin nixvim nix nixos
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273set dotenv-load[macos]install: sudo nix run nix-darwin -- switch --flake .[linux]install cores='32': sudo nixos-rebuild switch --flake . --builders '' --max-jobs 1 --cores {{cores}}[linux]boot cores='32': sudo nixos-rebuild boot --flake . --builders '' --max-jobs 1 --cores {{cores}}[macos]build host=`hostname` cores='32': nix run nix-darwin -- build --flake .#{{host}} --show-trace --max-jobs 1 --cores {{cores}}[linux]build host=`hostname` cores='12': nixos-rebuild build --flake .#{{host}} --show-trace --max-jobs 1 --cores {{cores}} --substituters ''nix args: nix --extra-experimental-features "nix-command flakes" {{args}}home: nix --extra-experimental-features "nix-command flakes" run home-manager/master -- switch --flake . --show-tracenvim: nix run .#neovim[linux]rollback: sudo nixos-rebuild switch --rollback --flake .copy-closure src dst: #!/usr/bin/env bash set -euo pipefail path=$(nix --extra-experimental-features "nix-command flakes" \ eval --raw .#nixosConfigurations.{{src}}.config.system.build.toplevel) nix --extra-experimental-features "nix-command flakes" \ build .#nixosConfigurations.{{src}}.config.system.build.toplevel \ --builders '' --cores 32 --no-link nix --extra-experimental-features "nix-command flakes" \ copy --to ssh://{{dst}} "$path"add path name: #!/usr/bin/env bash set -euo pipefail machine=$(echo "{{path}}" | cut -d/ -f1) category=$(echo "{{path}}" | cut -d/ -f2) case "$machine" in ryu|tako|tsuba) dir="nixos/$machine/$category" ;; kuro|shiro) dir="darwin/$machine/$category" ;; home) dir="home/$category" ;; *) echo "Unknown machine/path: $machine"; exit 1 ;; esac echo '{...}: { }' > "$dir/{{name}}.nix" # https://ast-grep.github.io/advanced/pattern-parse.html#incomplete-pattern-code # imports doesn't match the whole pattern, use selector binding + attr expr. if [ -t 0 ] && [ -t 1 ]; then sg_flag=-i; else sg_flag=-U; fi # Bare `imports = [ ... ]`, falling back to `imports = lib.optionals <cond> [ ... ]`. ast-grep run -p '{ imports = [$$$ITEMS] }' --selector binding --rewrite 'imports = [$$$ITEMS ./{{name}}.nix ]' "$dir/default.nix" "$sg_flag" \ || ast-grep run -p '{ imports = lib.optionals $COND [$$$ITEMS] }' --selector binding --rewrite 'imports = lib.optionals $COND [$$$ITEMS ./{{name}}.nix ]' "$dir/default.nix" "$sg_flag" alejandra fmt "$dir/{{name}}.nix" "$dir/default.nix" git add "$dir/{{name}}.nix"add-secret secret: #!/usr/bin/env bash set -euo pipefail key=$(jq -rn --arg s "{{secret}}" '$s | split(".") | map("[" + tojson + "]") | join("")') openssl rand -hex 32 | tr -d '\n' | jq -sR | sops set --value-stdin secrets/secrets.yaml "$key"