Builds a PDF resume from a json file
1let
2 pins = import ./npins;
3
4 nilla = import pins.nilla;
5in
6nilla.create ({ config }: {
7 config = {
8 inputs = {
9 fenix = {
10 src = pins.fenix;
11 };
12
13 nixpkgs = {
14 src = pins.nixpkgs;
15
16 settings = {
17 overlays = [
18 config.inputs.fenix.result.overlays.default
19 ];
20 };
21 };
22 };
23
24 packages.default = config.packages.resume;
25 packages.resume = {
26 systems = [ "x86_64-linux" "aarch64-linux" ];
27
28 package = { fenix, makeRustPlatform, lib, installShellFiles, ... }:
29 let
30 toolchain = fenix.complete.toolchain;
31
32 manifest = (lib.importTOML ./Cargo.toml).package;
33
34 platform = makeRustPlatform {
35 cargo = toolchain;
36 rustc = toolchain;
37 };
38 in
39 platform.buildRustPackage {
40 meta.mainProgram = "resume_builder";
41 pname = manifest.name;
42 version = manifest.version;
43
44 src = ./.;
45
46 nativeBuildInputs = [ installShellFiles ];
47
48 cargoLock.lockFile = ./Cargo.lock;
49 };
50 };
51
52 shells.default = config.shells.pdf;
53 shells.pdf = {
54 systems = [ "x86_64-linux" ];
55
56 shell = { mkShell, fenix, bacon, pkg-config, ... }:
57 mkShell {
58 packages = [
59 (fenix.complete.withComponents [
60 "cargo"
61 "clippy"
62 "rust-src"
63 "rustc"
64 "rustfmt"
65 "rust-analyzer"
66 ])
67 bacon
68 pkg-config
69 ];
70 };
71 };
72 };
73})