.hive/modules/bin/nix-scripts.nix

56 lines
1.6 KiB
Nix

{
config,
pkgs,
...
}: let
home-rebuild =
pkgs.writeShellScriptBin ".home-rebuild"
''
set -e
pushd ~/.nixos/
${pkgs.alejandra}/bin/alejandra . &>/dev/null
${pkgs.git}/bin/git diff -U0
echo "NixOS Rebuilding..."
${pkgs.unstable.nh}/bin/nh home switch ~/.nixos
gen=$(home-manager generations | head -n1 | ${pkgs.awk} '{print "Gen" $5 " @ " $1}')
${pkgs.git}/bin/git commit --no-gpg-sign -am "Home $gen"
popd
'';
rebuild =
pkgs.writeShellScriptBin ".nixos-rebuild"
''
set -e
pushd ~/.nixos/
${pkgs.alejandra}/bin/alejandra . &>/dev/null
${pkgs.git}/bin/git diff -U0
echo "NixOS Rebuilding..."
${pkgs.unstable.nh}/bin/nh os switch ~/.nixos
gen=$(sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | ${pkgs.gnugrep}/bin/grep current)
${pkgs.git}/bin/git commit --no-gpg-sign -am "Generation $gen"
popd
'';
upgrade =
pkgs.writeShellScriptBin ".nixos-upgrade"
''
set -e
pushd ~/.nixos/
if [ -n "$(${pkgs.git}/bin/git status --porcelain)" ]; then
echo ".nixos is unclean!"
exit 1
fi
echo "Updating nix-flake..."
nix flake update .
echo "NixOS Rebuilding..."
${pkgs.unstable.nh}/bin/nh os switch ~/.nixos
gen=$(sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | ${pkgs.gnugrep}/bin/grep current)
${pkgs.git}/bin/git commit --no-gpg-sign -am "Upgrade $gen"
popd
'';
in {
environment.systemPackages = [
pkgs.bash
rebuild
upgrade
];
}