From eff96a6f7b212082040768c70fc9ecadb6dfad4d Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Tue, 19 Mar 2024 14:07:26 +0100 Subject: [PATCH] Add pre-commit hooks. --- .gitignore | 1 + flake.lock | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++++- flake.nix | 10 +++- shell.nix | 27 +++++---- 4 files changed, 183 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index 92b2793..f9a759c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .direnv +.pre-commit-config.yaml diff --git a/flake.lock b/flake.lock index 4ac7af2..301e8f8 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,78 @@ { "nodes": { + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1709703039, @@ -16,9 +89,95 @@ "type": "github" } }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1710695816, + "narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "614b4613980a522ba49f0d194531beddbb7220d3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1710765496, + "narHash": "sha256-p7ryWEeQfMwTB6E0wIUd5V2cFTgq+DRRBz2hYGnJZyA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e367f7a1fb93137af22a3908f00b9a35e2d286a7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils_2", + "gitignore": "gitignore", + "nixpkgs": "nixpkgs_2", + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1710843117, + "narHash": "sha256-b6iKQeHegzpc697rxTPA3bpwGN3m50eLCgdQOmceFuE=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "e8dc1b4fe80c6fcededde7700e6a23bcdf7f3347", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { - "nixpkgs": "nixpkgs" + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs", + "pre-commit-hooks": "pre-commit-hooks" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index 535ad45..47e1b25 100644 --- a/flake.nix +++ b/flake.nix @@ -1,13 +1,17 @@ { description = "hb-downloader"; - inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; }; + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; +flake-utils.url = "github:numtide/flake-utils"; +pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; + }; - outputs = { self, nixpkgs, ... }: + outputs = { self, nixpkgs,flake-utils, pre-commit-hooks, ... }: let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; in { - devShells.x86_64-linux.default = (import ./shell.nix { inherit pkgs; }); + devShells.x86_64-linux.default = (import ./shell.nix { inherit pkgs pre-commit-hooks; }); packages.x86_64-linux.default = (import ./default.nix { inherit pkgs; }); }; } diff --git a/shell.nix b/shell.nix index 8fdc1a2..c34f65f 100644 --- a/shell.nix +++ b/shell.nix @@ -1,14 +1,17 @@ -{ pkgs ? import {} }: - -pkgs.mkShell { +{ pkgs ? import { }, pre-commit-hooks }: +let + pre-commit-check = pre-commit-hooks.lib.${pkgs.system}.run { + src = ./.; + hooks = { + gofmt.enable = true; + isort.enable = true; + black.enable = true; + }; + }; +in pkgs.mkShell { + inherit (pre-commit-check) shellHook; name = "hb-downloader"; - buildInputs = [ - (pkgs.python3.withPackages ( pyPkgs: with pyPkgs; [ - requests - mypy - ])) - ]; - nativeBuildInputs = [ - pkgs.aria2 - ]; + buildInputs = + [ (pkgs.python3.withPackages (pyPkgs: with pyPkgs; [ requests mypy ])) ]; + nativeBuildInputs = [ pkgs.aria2 ]; }