From 54fc7ccee7aa697791c49b7d8cd02bf443237576 Mon Sep 17 00:00:00 2001 From: Fredrik Robertsen Date: Tue, 3 Feb 2026 20:23:35 +0100 Subject: [PATCH] initial empty report --- report/flake.lock | 61 ++++++++++++++++++++++++++++++++++++++++++++++ report/flake.nix | 43 ++++++++++++++++++++++++++++++++ report/main.pdf | Bin 0 -> 14570 bytes report/main.typ | 14 +++++++++++ 4 files changed, 118 insertions(+) create mode 100644 report/flake.lock create mode 100644 report/flake.nix create mode 100644 report/main.pdf create mode 100644 report/main.typ diff --git a/report/flake.lock b/report/flake.lock new file mode 100644 index 0000000..668ac53 --- /dev/null +++ b/report/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1770115704, + "narHash": "sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e6eae2ee2110f3d31110d5c222cd395303343b08", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/report/flake.nix b/report/flake.nix new file mode 100644 index 0000000..89234fb --- /dev/null +++ b/report/flake.nix @@ -0,0 +1,43 @@ +{ + description = "pdf report generation with typst"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = + { + self, + nixpkgs, + flake-utils, + }: + flake-utils.lib.eachDefaultSystem ( + system: + let + pkgs = nixpkgs.legacyPackages.${system}; + in + { + devShells.default = pkgs.mkShell { + buildInputs = with pkgs; [ + typst + tinymist + ]; + }; + + packages.default = pkgs.writeShellScriptBin "compile-report" '' + set -e + mkdir -p output + + echo "compiling report" + typst compile main.typ + echo done + ''; + + apps.default = { + type = "app"; + program = "${self.packages.${system}.default}/bin/compile-report"; + }; + } + ); +} diff --git a/report/main.pdf b/report/main.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8cd4705e2f2ac6ed8f3b496dad3438954d56530e GIT binary patch literal 14570 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