Add pre-commit hooks

This commit is contained in:
Dave Gallant
2021-01-24 16:19:48 -05:00
parent 088d3bca8f
commit 822c40cb4a
8 changed files with 73 additions and 57 deletions

1
.envrc Normal file
View File

@@ -0,0 +1 @@
use_nix

3
.gitignore vendored
View File

@@ -1,2 +1 @@
# avoid weird recursion problems .pre-commit-config.yaml
.dotfiles

View File

@@ -9,7 +9,7 @@ This repo stores nix to manage my machines. The initial structure was inspired b
```console ```console
$ git clone git@github.com:davegallant/nix-config.git $ git clone git@github.com:davegallant/nix-config.git
$ cd nix-config $ cd nix-config
$ sudo ./nixos-rebuild switch $ sudo ./nixos-rebuild.sh switch
``` ```
## Update ## Update

12
default.nix Normal file
View File

@@ -0,0 +1,12 @@
let
nix-pre-commit-hooks = import (builtins.fetchTarball
"https://github.com/cachix/pre-commit-hooks.nix/tarball/master");
in {
pre-commit-check = nix-pre-commit-hooks.run {
src = ./.;
hooks = {
shellcheck.enable = true;
nixfmt.enable = true;
};
};
}

101
flake.nix
View File

@@ -7,62 +7,61 @@
nixpkgs.url = "github:NixOS/nixpkgs/nixos-20.09"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-20.09";
nixpkgs-master.url = "github:NixOS/nixpkgs"; nixpkgs-master.url = "github:NixOS/nixpkgs";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
nixos-hardware.url = github:NixOS/nixos-hardware/master; nixos-hardware.url = "github:NixOS/nixos-hardware/master";
}; };
outputs = { self, home-manager, nixpkgs, nixpkgs-master, nixpkgs-unstable, nixos-hardware }: { outputs = { self, home-manager, nixpkgs, nixpkgs-master, nixpkgs-unstable
nixosConfigurations = let , nixos-hardware }: {
defaultModules = [ nixosConfigurations = let
home-manager.nixosModules.home-manager defaultModules = [
./modules/g810-led.nix home-manager.nixosModules.home-manager
./main/fonts.nix ./modules/g810-led.nix
./main/general.nix ./main/fonts.nix
./main/kernel.nix ./main/general.nix
./main/packages.nix ./main/kernel.nix
./main/printing.nix ./main/packages.nix
./main/printing.nix
({ config, lib, lib', ... }: { ({ config, lib, lib', ... }: {
config = { config = {
_module.args = { _module.args = {
lib' = lib // import ./lib { inherit config lib; }; lib' = lib // import ./lib { inherit config lib; };
master = lib'.pkgsImport nixpkgs-master; master = lib'.pkgsImport nixpkgs-master;
unstable = lib'.pkgsImport nixpkgs-unstable; unstable = lib'.pkgsImport nixpkgs-unstable;
};
nix.registry = {
nixpkgs.flake = nixpkgs;
nixpkgs-unstable.flake = nixpkgs-unstable;
};
nixpkgs.overlays = [ (import ./overlays) ];
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.dave.imports = [ ./home/default.nix ];
};
}; };
})
nix.registry = { ];
nixpkgs.flake = nixpkgs; in {
nixpkgs-unstable.flake = nixpkgs-unstable; hephaestus = nixpkgs.lib.nixosSystem {
}; system = "x86_64-linux";
modules = [
nixpkgs.overlays = [ ./machines/hephaestus/configuration.nix
(import ./overlays) ./machines/hephaestus/hardware.nix
]; ] ++ defaultModules;
};
home-manager = { hermes = nixpkgs.lib.nixosSystem {
useGlobalPkgs = true; system = "x86_64-linux";
useUserPackages = true; modules = [
users.dave.imports = [ ./home/default.nix ]; nixos-hardware.nixosModules.lenovo-thinkpad-t480s
}; ./machines/hermes/configuration.nix
}; ./machines/hermes/hardware.nix
}) ] ++ defaultModules;
]; };
in {
hephaestus = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./machines/hephaestus/configuration.nix
./machines/hephaestus/hardware.nix
] ++ defaultModules;
};
hermes = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
nixos-hardware.nixosModules.lenovo-thinkpad-t480s
./machines/hermes/configuration.nix
./machines/hermes/hardware.nix
] ++ defaultModules;
}; };
}; };
};
} }

View File

@@ -1,3 +0,0 @@
#!/usr/bin/env bash
cd "$(dirname "$0")"
exec nixos-rebuild -I nixos-config=machines/$(hostname)/configuration.nix "$@" --flake '.#'

3
nixos-rebuild.sh Executable file
View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
cd "$(dirname "$0")" || exit
exec nixos-rebuild -I nixos-config="machines/$(hostname)/configuration.nix" "$@" --flake '.#'

5
shell.nix Normal file
View File

@@ -0,0 +1,5 @@
(import <nixpkgs> { }).mkShell {
shellHook = ''
${(import ./default.nix).pre-commit-check.shellHook}
'';
}