From 39471c126e9da82d3b56d802b1b78c4ffba81ea5 Mon Sep 17 00:00:00 2001 From: Astro Date: Thu, 12 Sep 2019 17:14:55 +0200 Subject: [PATCH] add slidenado --- jobsets.nix | 30 ++++++++++++++++++++++++++++++ slidenado.nix | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 slidenado.nix diff --git a/jobsets.nix b/jobsets.nix index 7e5efc1..b72d356 100644 --- a/jobsets.nix +++ b/jobsets.nix @@ -91,6 +91,36 @@ let }; }; + slidenado = { + enabled = 1; + hidden = false; + description = "CmS slide generator"; + nixexprinput = "hydra-config"; + nixexprpath = "slidenado.nix"; + checkinterval = 300; + schedulingshares = 100; + enableemail = true; + emailoverride = "astro@spaceboyz.net"; + keepnr = 3; + inputs = { + slidenado = { + type = "git"; + value = "https://github.com/c3d2/slidenado.git master 1"; + emailresponsible = false; + }; + hydra-config = { + type = "git"; + value = "https://gitea.c3d2.de/C3D2/hydra-config.git master 1"; + emailresponsible = false; + }; + nixpkgs = { + type = "git"; + value = "git://github.com/NixOS/nixpkgs.git release-19.09 1"; + emailresponsible = false; + }; + }; + }; + }; jobsetsJson = pkgs.writeText "jobsets.json" (builtins.toJSON jobsets ); diff --git a/slidenado.nix b/slidenado.nix new file mode 100644 index 0000000..0efbee1 --- /dev/null +++ b/slidenado.nix @@ -0,0 +1,32 @@ +{pkgs ? import {}, +}: + +with pkgs; + +let + presentations = + map (match: builtins.elemAt match 0) + (builtins.filter (match: match != null) + (map (builtins.match "(.+)\.tex") + (builtins.attrNames + (lib.filterAttrs (name: type: type == "regular") + (builtins.readDir ) + )))); + presentation = name: + stdenv.mkDerivation { + name = "slidenado-${name}"; + buildInputs = [ texlive.combined.scheme-basic ]; + makeFlags = [ "${name}.pdf" ]; + postInstall = '' + mkdir -p $out/nix-support + cp ${name}.pdf $out/ + echo doc-pdf slides $out/${name}.pdf >> $out/nix-support/hydra-build-products + ''; + }; +in + +builtins.listToAttrs + (map (name: { + inherit name; + value = lib.hydraJob (presentation name); + }) presentations)