{ description = "UL Computer Society Open Governance"; inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; utils.url = "github:numtide/flake-utils"; 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 { system = "${system}"; config = { allowUnfree = true; permittedInsecurePackages = [ # for obsidian "electron-25.9.0" # for wkhtmltopdf "qtwebkit-5.212.0-alpha4" ]; }; }; in rec { # `nix develop` devShell = pkgs.mkShell { nativeBuildInputs = with pkgs; [obsidian]; shellHook = '' ${pkgs.obsidian}/bin/obsidian & BG_PID=$! trap "kill -9 $BG_PID" EXIT ''; }; packages = { handovers = pkgs.writeShellScriptBin "format_handovers" '' export PATH=${pkgs.lib.makeBinPath [pkgs.wkhtmltopdf bfom.defaultPackage.x86_64-linux]}:$PATH ${./_scripts/format_handovers.sh} ''; handovers_html = pkgs.writeShellScriptBin "format_handovers_html" '' export PATH=${pkgs.lib.makeBinPath [pkgs.wkhtmltopdf bfom.defaultPackage.x86_64-linux]}:$PATH ${./_scripts/format_handovers.sh} html ''; minutes = pkgs.writeShellScriptBin "format_minutes" '' export PATH=${pkgs.lib.makeBinPath [pkgs.wkhtmltopdf bfom.defaultPackage.x86_64-linux]}:$PATH ${./_scripts/format_minutes.sh} ''; minutes_html = pkgs.writeShellScriptBin "format_minutes_html" '' export PATH=${pkgs.lib.makeBinPath [pkgs.wkhtmltopdf bfom.defaultPackage.x86_64-linux]}:$PATH ${./_scripts/format_minutes.sh} html ''; budget = pkgs.writeShellScriptBin "format_budget" '' export PATH=${pkgs.lib.makeBinPath [pkgs.wkhtmltopdf bfom.defaultPackage.x86_64-linux]}:$PATH ${./_scripts/format_budget.sh} ''; budget_html = pkgs.writeShellScriptBin "format_budget_html" '' export PATH=${pkgs.lib.makeBinPath [pkgs.wkhtmltopdf bfom.defaultPackage.x86_64-linux]}:$PATH ${./_scripts/format_budget.sh} html ''; }; }); }