diff options
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 95 |
1 files changed, 62 insertions, 33 deletions
@@ -4,10 +4,6 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-parts.url = "github:hercules-ci/flake-parts"; - devshell = { - url = "github:numtide/devshell"; - inputs.nixpkgs.follows = "nixpkgs"; - }; treefmt-nix = { url = "github:numtide/treefmt-nix"; inputs.nixpkgs.follows = "nixpkgs"; @@ -16,49 +12,82 @@ url = "github:cachix/pre-commit-hooks.nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + no-style-please = { + url = "gitlab:atgumx/no-style-please"; + flake = false; + }; }; - outputs = inputs@{ flake-parts, ... }: + outputs = + inputs@{ flake-parts, ... }: flake-parts.lib.mkFlake { inherit inputs; } { imports = [ - inputs.devshell.flakeModule inputs.treefmt-nix.flakeModule inputs.pre-commit-hooks-nix.flakeModule ]; systems = [ "x86_64-linux" ]; - perSystem = { config, pkgs, ... }: { - packages = { - default = config.packages.website; - website = pkgs.stdenv.mkDerivation { - pname = "sorre-website"; - version = "2023-11-15"; - src = ./.; - nativeBuildInputs = [ pkgs.zola ]; - buildPhase = "zola build"; - installPhase = "cp -r public $out"; + perSystem = + { config, pkgs, ... }: + let + themeName = ((builtins.fromTOML (builtins.readFile "${inputs.no-style-please}/theme.toml")).name); + in + { + packages = { + default = config.packages.website; + website = pkgs.stdenv.mkDerivation { + pname = "sorre-website"; + version = "2023-11-15"; + src = ./.; + nativeBuildInputs = [ pkgs.zola ]; + configurePhase = '' + mkdir -p "themes/${themeName}" + cp -r ${inputs.no-style-please}/* "themes/${themeName}" + ''; + buildPhase = "zola build"; + installPhase = "cp -r public $out"; + }; }; - }; - devshells.default = { - packages = builtins.attrValues config.treefmt.build.programs; - commands = with pkgs; [{ package = zola; }]; - }; + devShells.default = + let + stdenvMinimal = pkgs.stdenvNoCC.override { + cc = null; + preHook = ""; + allowedRequisites = null; + initialPath = pkgs.lib.filter ( + a: pkgs.lib.hasPrefix "coreutils" a.name + ) pkgs.stdenvNoCC.initialPath; + extraNativeBuildInputs = [ ]; + }; + minimalMkShell = pkgs.mkShell.override { stdenv = stdenvMinimal; }; + in + minimalMkShell { + packages = with pkgs; [ zola ] ++ builtins.attrValues config.treefmt.build.programs; + shellHook = '' + mkdir -p themes + ln -sn "${inputs.no-style-please}" "themes/${themeName}" + ''; + }; - treefmt = { - projectRootFile = ./flake.nix; - programs = { nixfmt.enable = true; }; - }; + treefmt = { + projectRootFile = ./flake.nix; + programs = { + nixfmt.enable = true; + }; + }; - pre-commit = { - check.enable = true; - settings = { - settings = { treefmt.package = config.treefmt.build.wrapper; }; - hooks = { - treefmt.enable = true; - deadnix.enable = true; + pre-commit = { + check.enable = true; + settings = { + settings = { + treefmt.package = config.treefmt.build.wrapper; + }; + hooks = { + treefmt.enable = true; + deadnix.enable = true; + }; }; }; }; - }; }; } |
