build(flake): use typix
This commit is contained in:
parent
767636bb02
commit
49168c8638
3 changed files with 117 additions and 9 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1 +1,5 @@
|
|||
# typst
|
||||
*.pdf
|
||||
|
||||
# Nix
|
||||
/result
|
||||
|
|
40
flake.lock
generated
40
flake.lock
generated
|
@ -37,7 +37,9 @@
|
|||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs"
|
||||
"nixpkgs": "nixpkgs",
|
||||
"typix": "typix",
|
||||
"typst-packages": "typst-packages"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
|
@ -54,6 +56,42 @@
|
|||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"typix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1738982361,
|
||||
"narHash": "sha256-QWDOo/+9pGu63knSlrhPiESSC+Ij/QYckC3yH8QPK4k=",
|
||||
"owner": "loqusion",
|
||||
"repo": "typix",
|
||||
"rev": "bdb42d3e9a8722768e2168e31077129207870f92",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "loqusion",
|
||||
"repo": "typix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"typst-packages": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1739953413,
|
||||
"narHash": "sha256-wwMCLTFWEJvyQZMZ+N30LrG9w6FfoWfp9tzCt4BXFQc=",
|
||||
"owner": "typst",
|
||||
"repo": "packages",
|
||||
"rev": "7752964daa3196be81af765fa0dedb7b3661da22",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "typst",
|
||||
"repo": "packages",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
|
82
flake.nix
82
flake.nix
|
@ -1,7 +1,17 @@
|
|||
{
|
||||
description = "felschr's CV";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
typix = {
|
||||
url = "github:loqusion/typix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
typst-packages = {
|
||||
url = "github:typst/packages";
|
||||
flake = false;
|
||||
};
|
||||
};
|
||||
|
||||
outputs =
|
||||
|
@ -10,19 +20,75 @@
|
|||
system:
|
||||
let
|
||||
pkgs = import inputs.nixpkgs { inherit system; };
|
||||
|
||||
typixLib = inputs.typix.lib.${system};
|
||||
|
||||
typstPackagesSrc = "${inputs.typst-packages}/packages";
|
||||
typstPackagesCache = pkgs.stdenvNoCC.mkDerivation {
|
||||
name = "typst-packages-cache";
|
||||
src = typstPackagesSrc;
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
mkdir -p "$out/typst/packages"
|
||||
cp -LR --reflink=auto --no-preserve=mode -t "$out/typst/packages" "$src"/*
|
||||
'';
|
||||
};
|
||||
|
||||
src = typixLib.cleanTypstSource ./.;
|
||||
commonArgs = {
|
||||
typstSource = "main.typ";
|
||||
|
||||
fontPaths = [ ];
|
||||
|
||||
virtualPaths = [ ];
|
||||
};
|
||||
|
||||
commonBuildArgs = commonArgs // {
|
||||
XDG_CACHE_HOME = typstPackagesCache;
|
||||
};
|
||||
|
||||
build-drv = typixLib.buildTypstProject (
|
||||
commonBuildArgs
|
||||
// {
|
||||
inherit src;
|
||||
}
|
||||
);
|
||||
|
||||
build-script = typixLib.buildTypstProjectLocal (
|
||||
commonBuildArgs
|
||||
// {
|
||||
inherit src;
|
||||
}
|
||||
);
|
||||
|
||||
watch-script = typixLib.watchTypstProject commonArgs;
|
||||
in
|
||||
{
|
||||
devShells = {
|
||||
default = pkgs.mkShell {
|
||||
name = "felschr-cv";
|
||||
checks = {
|
||||
inherit build-drv build-script watch-script;
|
||||
};
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
typst
|
||||
tinymist
|
||||
packages.default = build-drv;
|
||||
|
||||
nixfmt-rfc-style
|
||||
];
|
||||
apps = rec {
|
||||
default = watch;
|
||||
build = inputs.flake-utils.lib.mkApp {
|
||||
drv = build-script;
|
||||
};
|
||||
watch = inputs.flake-utils.lib.mkApp {
|
||||
drv = watch-script;
|
||||
};
|
||||
};
|
||||
|
||||
devShells.default = typixLib.devShell {
|
||||
inherit (commonArgs) fontPaths virtualPaths;
|
||||
packages = [
|
||||
watch-script
|
||||
pkgs.typstfmt
|
||||
pkgs.tinymist
|
||||
|
||||
pkgs.nixfmt-rfc-style
|
||||
];
|
||||
};
|
||||
|
||||
formatter = pkgs.nixfmt-rfc-style;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue