From 509ff46b73467ff07cf88a7086d94436c1f4f0aa Mon Sep 17 00:00:00 2001 From: Akshay Date: Sun, 3 Oct 2021 15:55:23 +0530 Subject: rework flake to be simpler --- flake.nix | 100 ++++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 59 insertions(+), 41 deletions(-) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index 3179176..09f7610 100644 --- a/flake.nix +++ b/flake.nix @@ -3,34 +3,28 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs"; - utils.url = "github:numtide/flake-utils"; - gitignore = { - url = "github:hercules-ci/gitignore"; - flake = false; - }; }; - outputs = { self, nixpkgs, utils, gitignore, ... }: - utils.lib.eachDefaultSystem (system: - let - pname = "report"; - version = "0.1.0"; - pkgs = nixpkgs.legacyPackages."${system}"; - inherit (import gitignore { inherit (pkgs) lib; }) gitignoreSource; - nativeBuildInputs = with pkgs; [ - (texlive.combine { - inherit (texlive) - scheme-medium - multirow - hyperref - blindtext - fancyhdr - etoolbox - topiclongtable; - }) - gnumake - ]; - watcher = pkgs.writeScriptBin "watch" '' + outputs = { self, nixpkgs, ... }: + let + supportedSystems = [ "x86_64-linux" "x86_64-darwin" ]; + forAllSystems = f: nixpkgs.lib.genAttrs supportedSystems (system: f system); + pname = "report"; + version = "0.1.0"; + + nixpkgsFor = forAllSystems (system: + import nixpkgs { + inherit system; + overlays = [ self.overlay ]; + } + ); + + in + rec { + + overlay = final: prev: { + + watcher = with final; pkgs.writeScriptBin "watch" '' out=".latexmkout" mkdir "$out" latexmk \ @@ -41,29 +35,53 @@ -use-make ${pname}.tex rm -r "$out" ''; - in - rec { - defaultPackage = pkgs.stdenv.mkDerivation { + + buildLatex = with final; pkgs.stdenv.mkDerivation { inherit pname version; - src = gitignoreSource ./.; - buildInputs = nativeBuildInputs; + + src = ./.; + + nativeBuildInputs = with pkgs; [ + (texlive.combine { + inherit (texlive) + scheme-medium + multirow + hyperref + blindtext + fancyhdr + etoolbox + topiclongtable; + }) + gnumake + ]; + buildPhase = '' latexmk \ - -pdf \ - -pdflatex="pdflatex -interaction=nonstopmode" \ - -use-make ${pname}.tex + -pdf \ + -pdflatex="pdflatex -interaction=nonstopmode" \ + -use-make ${pname}.tex ''; installPhase = '' - mkdir -p $out - cp ${pname}.pdf $out/ + install -Dm444 -t $out ${pname}.pdf ''; }; - apps.watch = { + + }; + + packages = forAllSystems (system: { + inherit (nixpkgsFor.${system}) watcher buildLatex; + }); + + defaultPackage = + forAllSystems (system: self.packages."${system}".buildLatex); + + + apps = forAllSystems (system: { + watch = { type = "app"; - program = "${watcher}/bin/watch"; - }; - devShell = pkgs.mkShell { - nativeBuildInputs = nativeBuildInputs; + program = "${self.packages."${system}".watcher}/bin/watch"; }; }); + + }; } -- cgit v1.2.3