diff options
| author | Franck Cuny <franck@fcuny.net> | 2024-12-26 19:01:18 -0800 |
|---|---|---|
| committer | Franck Cuny <franck@fcuny.net> | 2024-12-26 19:01:18 -0800 |
| commit | bf56a9edfcca610bc771e0176f72bbce59fcc87a (patch) | |
| tree | 382908e01dee4992a9566a5859928ee4c10334bb /flake.nix | |
| parent | add back the resume and generate it with nix (diff) | |
| download | fcuny.net-bf56a9edfcca610bc771e0176f72bbce59fcc87a.tar.gz | |
large cleanup
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 77 |
1 files changed, 59 insertions, 18 deletions
@@ -5,6 +5,8 @@ nixpkgs.url = "github:nixos/nixpkgs/master"; flake-utils.url = "github:numtide/flake-utils"; pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; + devshell.url = "github:numtide/devshell"; + treefmt-nix.url = "github:numtide/treefmt-nix"; }; outputs = @@ -13,19 +15,40 @@ nixpkgs, flake-utils, pre-commit-hooks, + devshell, + treefmt-nix, }: flake-utils.lib.eachDefaultSystem ( system: let - pkgs = nixpkgs.legacyPackages.${system}; + pkgs = import nixpkgs { + inherit system; + overlays = [ + devshell.overlays.default + ]; + }; + + treefmt = ( + treefmt-nix.lib.mkWrapper pkgs { + projectRootFile = "flake.nix"; + programs = { + actionlint.enable = true; + deadnix.enable = true; + jsonfmt.enable = true; + just.enable = true; + nixfmt.enable = true; + prettier.enable = true; + taplo.enable = true; + typos.enable = true; + }; + settings.formatter.typos.excludes = [ + "*.jpeg" + "*.jpg" + ]; + } + ); in { - apps = { - default = { - type = "app"; - program = "${self.packages."${system}".zola}/bin/zola"; - }; - }; packages = { default = @@ -42,13 +65,14 @@ buildPhase = '' mkdir -p $out ${pkgs.zola}/bin/zola build -o $out -f - ${pkgs.pandoc}/bin/pandoc --self-contained --css static/css/resume.css \ + ${pkgs.pandoc}/bin/pandoc --self-contained --css static/css/resume.css \ --from markdown --to html --output $out/resume.html resume/resume.md - ${pkgs.pandoc}/bin/pandoc --self-contained --css static/css/resume.css \ + ${pkgs.pandoc}/bin/pandoc --self-contained --css static/css/resume.css \ --from markdown --to pdf --output $out/resume.pdf resume/resume.md ''; dontInstall = true; }; + zola = pkgs.writeShellScriptBin "zola" '' set -euo pipefail export PATH=${ @@ -61,13 +85,26 @@ ''; }; + apps = { + default = { + type = "app"; + program = "${self.packages."${system}".zola}/bin/zola"; + }; + check-links = pkgs.writeShellScriptBin "check-links" '' + ${pkgs.lychee}/bin/lychee --quiet --no-progress --base="${self.packages.default}/public" "${self.packages.default}/public" + ''; + + }; + formatter = treefmt; + checks = { pre-commit-check = pre-commit-hooks.lib.${system}.run { src = ./.; hooks = { - nixfmt-rfc-style.enable = true; - check-toml.enable = true; - check-yaml.enable = true; + treefmt = { + enable = true; + excludes = [ ".*" ]; + }; check-merge-conflicts.enable = true; end-of-file-fixer.enable = true; actionlint.enable = true; @@ -75,9 +112,9 @@ }; }; - devShells.default = pkgs.mkShell { - inherit (self.checks.${system}.pre-commit-check) shellHook; - buildInputs = with pkgs; [ + devShells.default = pkgs.devshell.mkShell { + name = "python-scripts"; + packages = with pkgs; [ zola git treefmt @@ -85,11 +122,15 @@ just taplo nodePackages.prettier - awscli - imagemagick - exiftool treefmt ]; + devshell.startup.pre-commit.text = self.checks.${system}.pre-commit-check.shellHook; + env = [ + { + name = "DEVSHELL_NO_MOTD"; + value = "1"; + } + ]; }; } ); |
