|
6 | 6 | inputs = {
|
7 | 7 | nixpkgs.url = "nixpkgs/nixpkgs-unstable";
|
8 | 8 | flake-utils.url = "github:numtide/flake-utils";
|
| 9 | + # NOTA BENE: When a new release of ledger or ledger-mode is available, update |
| 10 | + # the tag in the url below and run `nix flake update`, so that GitHub Actions |
| 11 | + # will build the documentation for ledger-cli.org from the latest release. |
| 12 | + # TODO: Uncomment once a ledger release contains changes from afh/ledger@web-docs |
| 13 | + #ledger.url = "github:ledger/ledger/v3.3.1"; |
| 14 | + # TODO: Remove once a ledger release contains changes from afh/ledger@web-docs |
| 15 | + ledger.url = "github:afh/ledger/7b7bb08f5c5903566f866af23acde6a3c451b7d3?dir=doc"; |
| 16 | + ledger-mode.url = "github:ledger/ledger-mode/v4.0.0?dir=doc"; |
| 17 | + ledger-mode.flake = false; |
9 | 18 | };
|
10 | 19 |
|
11 |
| - outputs = { self, nixpkgs, flake-utils }: |
| 20 | + outputs = { self, nixpkgs, flake-utils, ledger, ledger-mode }: |
12 | 21 | flake-utils.lib.eachDefaultSystem( system:
|
13 | 22 | let
|
14 | 23 | pkgs = import nixpkgs { inherit system; };
|
|
17 | 26 | inherit ruby;
|
18 | 27 | gemdir = ./.;
|
19 | 28 | };
|
| 29 | + tex = with pkgs; texlive.combine { |
| 30 | + inherit (texlive) collection-plaingeneric collection-fontsrecommended; |
| 31 | + }; |
20 | 32 | in
|
21 | 33 | {
|
22 | 34 | packages = rec {
|
23 |
| - default = pkgs.stdenvNoCC.mkDerivation rec { |
| 35 | + default = website; |
| 36 | + website = pkgs.stdenvNoCC.mkDerivation rec { |
24 | 37 | name = "ledger.github.io";
|
25 | 38 | src = self;
|
26 | 39 |
|
27 |
| - phases = [ "unpackPhase" "buildPhase" "installPhase" ]; |
| 40 | + dontConfigure = true; |
28 | 41 |
|
29 | 42 | nativeBuildInputs = with pkgs; [ gems ruby nodejs ];
|
30 | 43 |
|
|
40 | 53 | runHook postInstall
|
41 | 54 | '';
|
42 | 55 | };
|
43 |
| - }; |
44 | 56 |
|
45 |
| - devShell = pkgs.mkShell { |
46 |
| - buildInputs = self.packages.${system}.default.nativeBuildInputs; |
| 57 | + doc-ledger = pkgs.stdenvNoCC.mkDerivation rec { |
| 58 | + name = "ledger"; |
| 59 | + |
| 60 | + src = ledger; |
| 61 | + |
| 62 | + nativeBuildInputs = with pkgs; [ |
| 63 | + cmake groff texinfo tex |
| 64 | + ]; |
| 65 | + |
| 66 | + enableParallelBuilding = false; |
| 67 | + |
| 68 | + preConfigure = "cd doc"; |
| 69 | + |
| 70 | + cmakeFlags = [ "-DBUILD_WEB_DOCS:BOOL=ON" "-Wno-dev" ]; |
| 71 | + |
| 72 | + buildFlags = "doc"; |
| 73 | + }; |
| 74 | + |
| 75 | + doc-ledger-mode = pkgs.stdenvNoCC.mkDerivation rec { |
| 76 | + name = "ledger-mode"; |
| 77 | + |
| 78 | + src = ledger-mode; |
| 79 | + nativeBuildInputs = with pkgs; [ |
| 80 | + texinfo tex |
| 81 | + ]; |
| 82 | + |
| 83 | + enableParallelBuilding = false; |
| 84 | + |
| 85 | + dontConfigure = true; |
| 86 | + |
| 87 | + preBuild = "cd doc"; |
| 88 | + buildPhase = '' |
| 89 | + runHook preBuild |
| 90 | + texi2pdf --batch ledger-mode.texi |
| 91 | + makeinfo --force --html --no-split ledger-mode.texi |
| 92 | + runHook postBuild |
| 93 | + ''; |
| 94 | + |
| 95 | + installPhase = '' |
| 96 | + runHook preInstall |
| 97 | + mkdir -p $out |
| 98 | + cp ledger-mode.html ledger-mode.pdf $out/ |
| 99 | + runHook postInstall |
| 100 | + ''; |
| 101 | + }; |
47 | 102 | };
|
48 | 103 | });
|
49 | 104 | }
|
0 commit comments