Improve nixos-rebuild with nix-helper

This commit is contained in:
SebastianStork 2024-03-18 14:09:13 +01:00
parent 7adfa40f4d
commit d5729dc447
7 changed files with 70 additions and 5 deletions

21
flake.lock generated
View file

@ -20,6 +20,26 @@
"type": "github" "type": "github"
} }
}, },
"nh": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1710573382,
"narHash": "sha256-oGPasBk516A6pNE7iBEOmtrNsbqd+frR7O+z9lr1cLw=",
"owner": "viperML",
"repo": "nh",
"rev": "60c019a930e1718f1c5b6638f16dc221bf667d61",
"type": "github"
},
"original": {
"owner": "viperML",
"repo": "nh",
"type": "github"
}
},
"nix-index-database": { "nix-index-database": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -75,6 +95,7 @@
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"nh": "nh",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"sops-nix": "sops-nix" "sops-nix": "sops-nix"

View file

@ -16,6 +16,11 @@
url = "github:Mic92/sops-nix"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nh = {
url = "github:viperML/nh";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = {nixpkgs, ...} @ inputs: let outputs = {nixpkgs, ...} @ inputs: let

View file

@ -6,6 +6,8 @@
networking.hostName = "dell-laptop"; networking.hostName = "dell-laptop";
environment.sessionVariables.FLAKE = "/home/seb/Projects/nixos/my-config";
myConfig = { myConfig = {
boot-loader.systemd-boot.enable = true; boot-loader.systemd-boot.enable = true;
@ -24,6 +26,7 @@
sops.enable = true; sops.enable = true;
auto-cpufreq.enable = true; auto-cpufreq.enable = true;
doas.enable = false; doas.enable = false;
nix-helper.enable = true;
}; };
boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_latest;

View file

@ -1,6 +1,7 @@
{ {
config, config,
lib, lib,
osConfig,
... ...
}: let }: let
cfg = config.myConfig.shell; cfg = config.myConfig.shell;
@ -9,12 +10,25 @@ in {
bash.enable = lib.mkEnableOption ""; bash.enable = lib.mkEnableOption "";
zsh.enable = lib.mkEnableOption ""; zsh.enable = lib.mkEnableOption "";
starship.enable = lib.mkEnableOption ""; starship.enable = lib.mkEnableOption "";
nixAliases.enable = lib.mkEnableOption ""; nixAliases = {
enable = lib.mkEnableOption "";
nix-helper.enable = lib.mkEnableOption "";
};
improvedCommands.enable = lib.mkEnableOption ""; improvedCommands.enable = lib.mkEnableOption "";
direnv.enable = lib.mkEnableOption ""; direnv.enable = lib.mkEnableOption "";
}; };
config = { config = {
assertions = [
{
assertion =
if cfg.nixAliases.nix-helper.enable
then osConfig.myConfig.nix-helper.enable
else true;
message = "The nix-helper has to be enabled on the OS level.";
}
];
programs.bash.enable = cfg.bash.enable; programs.bash.enable = cfg.bash.enable;
programs.zsh.enable = cfg.zsh.enable; programs.zsh.enable = cfg.zsh.enable;
@ -35,10 +49,14 @@ in {
home.shellAliases = let home.shellAliases = let
nixAliases = lib.mkIf cfg.nixAliases.enable { nixAliases = lib.mkIf cfg.nixAliases.enable {
nrs = "sudo nixos-rebuild switch"; nr =
nrb = "sudo nixos-rebuild boot"; if cfg.nixAliases.nix-helper.enable
then "nh os"
else "sudo nixos-rebuild --flake $FLAKE";
nrs = "nr switch";
nrt = "nr test";
nrb = "nr boot";
nrrb = "nrb && reboot"; nrrb = "nrb && reboot";
nrt = "sudo nixos-rebuild test";
nu = "sudo nix flake update"; nu = "sudo nix flake update";
}; };
commandAliases = lib.mkIf cfg.improvedCommands.enable { commandAliases = lib.mkIf cfg.improvedCommands.enable {

View file

@ -15,5 +15,6 @@
./dm.nix ./dm.nix
./sound.nix ./sound.nix
./boot-loader.nix ./boot-loader.nix
./nix-helper.nix
]; ];
} }

View file

@ -0,0 +1,14 @@
{
inputs,
config,
lib,
...
}: {
imports = [inputs.nh.nixosModules.default];
options.myConfig.nix-helper.enable = lib.mkEnableOption "";
config = lib.mkIf config.myConfig.nix-helper.enable {
nh.enable = true;
};
}

View file

@ -5,7 +5,10 @@
shell = { shell = {
bash.enable = true; bash.enable = true;
starship.enable = true; starship.enable = true;
nixAliases.enable = true; nixAliases = {
enable = true;
nix-helper.enable = true;
};
improvedCommands.enable = true; improvedCommands.enable = true;
direnv.enable = true; direnv.enable = true;
}; };