diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..4a4726a --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use_nix diff --git a/.gitignore b/.gitignore index 96c99b8..e90b739 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -# avoid weird recursion problems -.dotfiles +.pre-commit-config.yaml diff --git a/README.md b/README.md index 1008cbb..f995e9b 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This repo stores nix to manage my machines. The initial structure was inspired b ```console $ git clone git@github.com:davegallant/nix-config.git $ cd nix-config -$ sudo ./nixos-rebuild switch +$ sudo ./nixos-rebuild.sh switch ``` ## Update diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..8f6fa12 --- /dev/null +++ b/default.nix @@ -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; + }; + }; +} diff --git a/flake.nix b/flake.nix index 197701c..a60e177 100644 --- a/flake.nix +++ b/flake.nix @@ -7,62 +7,61 @@ nixpkgs.url = "github:NixOS/nixpkgs/nixos-20.09"; nixpkgs-master.url = "github:NixOS/nixpkgs"; 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 }: { - nixosConfigurations = let - defaultModules = [ - home-manager.nixosModules.home-manager - ./modules/g810-led.nix - ./main/fonts.nix - ./main/general.nix - ./main/kernel.nix - ./main/packages.nix - ./main/printing.nix + outputs = { self, home-manager, nixpkgs, nixpkgs-master, nixpkgs-unstable + , nixos-hardware }: { + nixosConfigurations = let + defaultModules = [ + home-manager.nixosModules.home-manager + ./modules/g810-led.nix + ./main/fonts.nix + ./main/general.nix + ./main/kernel.nix + ./main/packages.nix + ./main/printing.nix - ({ config, lib, lib', ... }: { - config = { - _module.args = { - lib' = lib // import ./lib { inherit config lib; }; - master = lib'.pkgsImport nixpkgs-master; - unstable = lib'.pkgsImport nixpkgs-unstable; + ({ config, lib, lib', ... }: { + config = { + _module.args = { + lib' = lib // import ./lib { inherit config lib; }; + master = lib'.pkgsImport nixpkgs-master; + 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; - nixpkgs-unstable.flake = nixpkgs-unstable; - }; - - nixpkgs.overlays = [ - (import ./overlays) - ]; - - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - users.dave.imports = [ ./home/default.nix ]; - }; - }; - }) - ]; - 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; + }) + ]; + 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; + }; }; }; - }; } diff --git a/nixos-rebuild b/nixos-rebuild deleted file mode 100755 index 5bd5def..0000000 --- a/nixos-rebuild +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash -cd "$(dirname "$0")" -exec nixos-rebuild -I nixos-config=machines/$(hostname)/configuration.nix "$@" --flake '.#' diff --git a/nixos-rebuild.sh b/nixos-rebuild.sh new file mode 100755 index 0000000..ced4a71 --- /dev/null +++ b/nixos-rebuild.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +cd "$(dirname "$0")" || exit +exec nixos-rebuild -I nixos-config="machines/$(hostname)/configuration.nix" "$@" --flake '.#' diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..8aa1f75 --- /dev/null +++ b/shell.nix @@ -0,0 +1,5 @@ +(import { }).mkShell { + shellHook = '' + ${(import ./default.nix).pre-commit-check.shellHook} + ''; +}