Builds a PDF resume from a json file
at main 1.6 kB view raw
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})