{ description = "Skynet Presentations"; inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; utils.url = "github:numtide/flake-utils"; # nix flake lock --update-input bfom bfom.url = "gitlab:silver_rust/bfom"; }; /* sudo nano /etc/nix/nix.conf trusted-users = {username} */ nixConfig = { extra-substituters = "https://nix-cache.skynet.ie/skynet-cache"; extra-trusted-public-keys = "skynet-cache:OdfA4Or0JcHiHf05fsiIR4nZT2z2yDEtkoLqhntGAz4="; }; outputs = { self, nixpkgs, utils, bfom, ... }: utils.lib.eachDefaultSystem ( system: let pkgs = (import nixpkgs) { inherit system; }; dependencies = with pkgs; [ # For teh presentations themselves presenterm # for exporting (pkgs.python3.withPackages (python-pkgs: with python-pkgs; [ # for exporting weasyprint ])) # various languages to embed in it ## Java # zulu24 ## C # gcc ## rust # cargo # rustc ## lua # lua ## racket # racket ## go # go ]; in rec { # `nix develop` devShell = pkgs.mkShell { packages = dependencies; PRESENTERM_CONFIG_FILE = "config.yaml"; }; packages.default = pkgs.stdenv.mkDerivation { name = "slides.skynet.ie"; src = self; nativeBuildInputs = dependencies; buildInputs = dependencies; buildPhase = '' # first pass through to get teh old files ${bfom.defaultPackage.x86_64-linux}/bin/cargo-bfom # then look into ./slides export PRESENTERM_CONFIG_FILE=config.yaml # recursively find each one then --export-html to ./build/slides/ shopt -s globstar for source in slides/**/*.md; do echo $source output="$(dirname "$source")/$(basename "$source" .md).html" echo $output presenterm --export-html "$source" mkdir -p "build/$(dirname "$source")" cp "$output" "build/$output" done shopt -u globstar ''; installPhase = "mkdir -p $out; cp -R build/* $out"; }; }); # @ inputs: let # pkgs = nixpkgs.legacyPackages.x86_64-linux.pkgs; # in { # # `nix build` # packages.x86_64-linux.default = pkgs.stdenv.mkDerivation { # name = "slides.skynet.ie"; # src = self; # buildPhase = "${bfom.defaultPackage.x86_64-linux}/bin/cargo-bfom"; # installPhase = "mkdir -p $out; cp -R build/* $out"; # }; # # devShells.x86_64-linux.default = pkgs.mkShell { # name = "Skynet presentations env"; # nativeBuildInputs = [ # bfom.defaultPackage.x86_64-linux # ]; # }; # }; }