From 130efc7383f21b909b6e890c259437b33aefe486 Mon Sep 17 00:00:00 2001 From: mat ess Date: Wed, 21 Dec 2022 22:08:18 -0500 Subject: [PATCH] Add pre-commit --- .gitignore | 3 + _typos.toml | 2 + .../command-line-flake-arguments/index.md | 2 +- flake.lock | 110 ++++++++++++++++-- flake.nix | 39 ++++--- nix/fonts.nix | 5 +- nix/optimize-images.nix | 3 +- static/favicon.ico | Bin 0 -> 45933 bytes 8 files changed, 136 insertions(+), 28 deletions(-) create mode 100644 _typos.toml create mode 100644 static/favicon.ico diff --git a/.gitignore b/.gitignore index 889a67e..dea3ff6 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,6 @@ static/style/fonts.css # Local Netlify folder .netlify + +# local pre-commit config +.pre-commit-config.yaml diff --git a/_typos.toml b/_typos.toml new file mode 100644 index 0000000..a005e9d --- /dev/null +++ b/_typos.toml @@ -0,0 +1,2 @@ +[default.extend-words] +referer = "referer" diff --git a/content/posts/command-line-flake-arguments/index.md b/content/posts/command-line-flake-arguments/index.md index 8e5f7d0..c75166e 100644 --- a/content/posts/command-line-flake-arguments/index.md +++ b/content/posts/command-line-flake-arguments/index.md @@ -126,7 +126,7 @@ If software builds are functions, then Nix flakes are pure functions. Indeed, th builder.url = "..."; source.url = "..."; }; - ouputs = { self, builder, source }: { + outputs = { self, builder, source }: { software = builder.build source; }; } diff --git a/flake.lock b/flake.lock index 78bf403..a4b3859 100644 --- a/flake.lock +++ b/flake.lock @@ -16,18 +16,32 @@ "type": "github" } }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1668681692, + "narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "009399224d5e398d03b22badca40a37ac85412a1", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { - "nixpkgs": [ - "nixpkgs" - ] + "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1664385320, - "narHash": "sha256-uSCHb9RUqHRjTpI8OzyaUuHckFnnxwZqlXEuo+yUpYQ=", + "lastModified": 1668450977, + "narHash": "sha256-cfLhMhnvXn6x1vPm+Jow3RiFAUSCw/l1utktCw5rVA4=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "45298bd207b26e1bcd030a0bb075aa2da29f8e30", + "rev": "d591857e9d7dd9ddbfba0ea02b43b927c3c0f1fa", "type": "github" }, "original": { @@ -36,6 +50,21 @@ "type": "github" } }, + "flake-utils": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -58,11 +87,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1665259268, - "narHash": "sha256-ONFhHBLv5nZKhwV/F2GOH16197PbvpyWhoO0AOyktkU=", + "lastModified": 1670064435, + "narHash": "sha256-+ELoY30UN+Pl3Yn7RWRPabykwebsVK/kYE9JsIsUMxQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c5924154f000e6306030300592f4282949b2db6c", + "rev": "61a8a98e6d557e6dd7ed0cdb54c3a3e3bbc5e25c", "type": "github" }, "original": { @@ -72,12 +101,73 @@ "type": "github" } }, + "nixpkgs-lib": { + "locked": { + "dir": "lib", + "lastModified": 1665349835, + "narHash": "sha256-UK4urM3iN80UXQ7EaOappDzcisYIuEURFRoGQ/yPkug=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "34c5293a71ffdb2fe054eb5288adc1882c1eb0b1", + "type": "github" + }, + "original": { + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1671271954, + "narHash": "sha256-cSvu+bnvN08sOlTBWbBrKaBHQZq8mvk8bgpt0ZJ2Snc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d513b448cc2a6da2c8803e3c197c9fc7e67b19e3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "gitignore": [ + "gitignore" + ], + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1671452357, + "narHash": "sha256-HqzXiQEegpRQ4VEl9pEPgHSIxhJrNJ27HfN1wOc7w2E=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "200790e9c77064c53eaf95805b013d96615ecc27", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { "caddyfile-syntax": "caddyfile-syntax", "flake-parts": "flake-parts", "gitignore": "gitignore", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "pre-commit": "pre-commit" } } }, diff --git a/flake.nix b/flake.nix index 02f3ba2..137f38e 100644 --- a/flake.nix +++ b/flake.nix @@ -4,19 +4,21 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-parts.url = "github:hercules-ci/flake-parts"; - flake-parts.inputs.nixpkgs.follows = "nixpkgs"; gitignore.url = "github:hercules-ci/gitignore.nix"; gitignore.inputs.nixpkgs.follows = "nixpkgs"; + pre-commit.url = "github:cachix/pre-commit-hooks.nix"; + pre-commit.inputs.nixpkgs.follows = "nixpkgs"; + pre-commit.inputs.gitignore.follows = "gitignore"; caddyfile-syntax.url = "github:caddyserver/sublimetext"; caddyfile-syntax.flake = false; }; - outputs = { self, flake-parts, gitignore, ... }@inputs: + outputs = { self, flake-parts, gitignore, pre-commit, ... }@inputs: flake-parts.lib.mkFlake { inherit self; } { - imports = [ ]; + imports = [ pre-commit.flakeModule ]; systems = [ "x86_64-linux" "aarch64-darwin" ]; - perSystem = { config, self', inputs', pkgs, system, ... }: + perSystem = { config, pkgs, ... }: let inherit (gitignore.lib) gitignoreSource; inherit (pkgs.callPackage ./nix { }) fonts optimize-images update-date; @@ -24,25 +26,23 @@ caddyfile-syntax = "${inputs.caddyfile-syntax}/Caddyfile.sublime-syntax"; buildSite = { prod }: let - inherit (pkgs.lib) optionalString; - ifStaging = optionalString (!prod); - rev = if (self ? rev) then self.rev else "dirty"; + ifStaging = pkgs.lib.optionalString (!prod); in '' optimize-images zola build --drafts ${ifStaging "--base-url https://staging--mat-services.netlify.app"} # zola's ignored_content setting doesn't work in static/ rm -rf public/image/_favicon.svg - convert public/image/favicon.svg -resize 256x256 public/favicon.ico ''; in { packages.default = with pkgs; stdenv.mkDerivation { pname = "personal-site"; - version = "2022-11-25"; + version = "2022-12-21"; src = gitignoreSource ./.; - nativeBuildInputs = [ imagemagick optimize-images update-date zola ]; - configurePhase = copyFonts + '' + nativeBuildInputs = [ optimize-images update-date zola ]; + configurePhase = '' + ${copyFonts} mkdir -p extra/syntax cp ${caddyfile-syntax} extra/syntax ''; @@ -54,12 +54,25 @@ packages.staging-site = config.packages.default.overrideAttrs (_: { buildPhase = buildSite { prod = false; }; }); + pre-commit.settings.hooks = { + # nix hooks + deadnix.enable = true; + nix-linter.enable = true; + nixpkgs-fmt.enable = true; + statix.enable = true; + # general hooks + typos.enable = true; + typos.excludes = [ "webp" "png" "svg" "ico" ]; + }; devShells.default = with pkgs; mkShell { - packages = [ optimize-images update-date zola ]; - shellHook = linkFonts + '' + packages = [ jsonnet netlify-cli optimize-images update-date zola ]; + shellHook = '' + ${config.pre-commit.installationScript} + ${linkFonts} mkdir -p extra/syntax ln -snf ${caddyfile-syntax} extra/syntax ''; + inputsFrom = builtins.attrValues self.checks; }; }; }; diff --git a/nix/fonts.nix b/nix/fonts.nix index fa737d6..9ed199b 100644 --- a/nix/fonts.nix +++ b/nix/fonts.nix @@ -2,7 +2,6 @@ , lib , stdenv , woff2 -, writeShellScriptBin , writeText }: let @@ -45,7 +44,7 @@ rec { name = "font-${pathName name}"; src = fetchFromGitHub { inherit owner repo rev sha256; - sparseCheckout = path; + sparseCheckout = [ path ]; }; nativeBuildInputs = [ woff2 ]; buildPhase = '' @@ -61,7 +60,7 @@ rec { font = fontDerivation fontSrc; }; fonts = map fetchFont fontSrcs; - mkFontCss = { font, name, fileName, cssVar }: + mkFontCss = { name, fileName, cssVar, ... }: let path = pathName name; in '' @font-face { font-family: '${name}'; diff --git a/nix/optimize-images.nix b/nix/optimize-images.nix index 7b74b8f..8a3a20b 100644 --- a/nix/optimize-images.nix +++ b/nix/optimize-images.nix @@ -1,4 +1,4 @@ -{ bc, libwebp, scour, writeShellScriptBin }: +{ bc, imagemagick, libwebp, scour, writeShellScriptBin }: writeShellScriptBin "optimize-images" '' shopt -s globstar nullglob @@ -14,4 +14,5 @@ writeShellScriptBin "optimize-images" '' pct=$(${bc}/bin/bc <<< "scale=1; $newsize * 100 / $oldsize") echo "size went from "$(($oldsize / 1024))"KB to "$(($newsize / 1024))"KB ("$pct"% as large as original)" done + ${imagemagick}/bin/convert static/image/favicon.svg -resize 256x256 static/favicon.ico '' diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..938157fe47ff98b2d646a2df6310e2cbf991b0e9 GIT binary patch literal 45933 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