Personal Nix flake
nixos home-manager nix
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: Dedicated maintenance shell

+67 -49
+13 -47
nix/shells/default.nix
··· 1 - {inputs, ...}: let 2 - inherit (inputs.self.lib.secrets.identities) primaryYubikey secondaryYubikey; 3 - in { 1 + {inputs, ...}: { 4 2 imports = [ 5 3 inputs.make-shell.flakeModules.default 6 4 ./deploy.nix 5 + ./maintenance.nix 6 + ./minimal.nix 7 7 ./nix.nix 8 8 ./rust.nix 9 - ./minimal.nix 10 9 ]; 11 10 12 - perSystem = { 13 - config, 14 - self', 15 - ... 16 - }: { 17 - devShells.default = self'.devShells.nix; 11 + perSystem = {self', ...}: { 12 + devShells.default = self'.devShells.maintenance; 18 13 make-shell.imports = [ 19 - ({ 20 - lib, 21 - pkgs, 22 - ... 23 - }: { 24 - env = { 25 - EDITOR = "hx"; 26 - AGENIX_PUBKEY_PRIMARY = primaryYubikey.pubkey; 27 - AGENIX_PUBKEY_SECONDARY = secondaryYubikey.pubkey; 28 - }; 29 - packages = 30 - (with pkgs; [ 31 - agenix-rekey 32 - bat 33 - fish 34 - git 35 - helix 36 - just 37 - rage 38 - ]) 39 - ++ config.pre-commit.settings.enabledPackages 40 - ++ lib.optionals (config.agenix-rekey.package != null) [ 41 - config.agenix-rekey.package 42 - ] 43 - ++ lib.optionals (config.pre-commit.settings.package != null) [ 44 - config.pre-commit.settings.package 45 - ]; 46 - shellHook = 47 - config.pre-commit.installationScript 48 - + '' 49 - if [[ "$HOSTNAME" == "desktop" ]]; then 50 - export AGENIX_REKEY_PRIMARY_IDENTITY="$AGENIX_PUBKEY_PRIMARY" 51 - 52 - else 53 - export AGENIX_REKEY_PRIMARY_IDENTITY="$AGENIX_PUBKEY_SECONDARY" 54 - fi 55 - ''; 14 + ({pkgs, ...}: { 15 + env.EDITOR = "hx"; 16 + packages = with pkgs; [ 17 + bat 18 + fish 19 + git 20 + helix 21 + ]; 56 22 }) 57 23 ]; 58 24 };
+5 -1
nix/shells/deploy.nix
··· 5 5 in { 6 6 make-shells.deploy = { 7 7 additionalArguments.meta.description = "Extra deployment utilities built-in"; 8 - inputsFrom = [self'.devShells.nix]; 8 + 9 + inputsFrom = with self'.devShells; [ 10 + maintenance 11 + nix 12 + ]; 9 13 packages = with pkgs; [ 10 14 disko 11 15 home-manager
+47
nix/shells/maintenance.nix
··· 1 + {inputs, ...}: let 2 + inherit (inputs.self.lib.secrets.identities) primaryYubikey secondaryYubikey; 3 + in { 4 + perSystem = { 5 + config, 6 + lib, 7 + pkgs, 8 + self', 9 + ... 10 + }: { 11 + make-shells.maintenance = { 12 + additionalArguments.meta.description = "Maintenance environment"; 13 + additionalArguments.passthru.my.ci.buildFor = ["x86_64-linux"]; 14 + 15 + env = { 16 + AGENIX_PUBKEY_PRIMARY = primaryYubikey.pubkey; 17 + AGENIX_PUBKEY_SECONDARY = secondaryYubikey.pubkey; 18 + }; 19 + inputsFrom = with self'.devShells; [ 20 + nix 21 + ]; 22 + packages = 23 + (with pkgs; [ 24 + age-plugin-yubikey 25 + agenix-rekey 26 + just 27 + rage 28 + ]) 29 + ++ config.pre-commit.settings.enabledPackages 30 + ++ lib.optionals (config.agenix-rekey.package != null) [ 31 + config.agenix-rekey.package 32 + ] 33 + ++ lib.optionals (config.pre-commit.settings.package != null) [ 34 + config.pre-commit.settings.package 35 + ]; 36 + shellHook = 37 + config.pre-commit.installationScript 38 + + '' 39 + if [[ "$HOSTNAME" == "desktop" ]]; then 40 + export AGENIX_REKEY_PRIMARY_IDENTITY="$AGENIX_PUBKEY_PRIMARY" 41 + else 42 + export AGENIX_REKEY_PRIMARY_IDENTITY="$AGENIX_PUBKEY_SECONDARY" 43 + fi 44 + ''; 45 + }; 46 + }; 47 + }
+1 -1
nix/shells/nix.nix
··· 3 3 make-shells.nix = { 4 4 additionalArguments.meta.description = "Nix development environment"; 5 5 additionalArguments.passthru.my.ci.buildFor = ["x86_64-linux"]; 6 + 6 7 packages = with pkgs; [ 7 - age 8 8 alejandra 9 9 nil 10 10 nixd
+1
nix/shells/rust.nix
··· 2 2 perSystem = {pkgs, ...}: { 3 3 make-shells.rust = { 4 4 additionalArguments.meta.description = "For building Rust projects"; 5 + 5 6 packages = with pkgs; [ 6 7 cargo 7 8 libx11