phd-thesis/flake.nix
Charlotte Van Petegem 7cdc4dc8f2
Title page
2023-10-23 18:26:43 +02:00

90 lines
2.4 KiB
Nix

{
description = "My PhD thesis";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
devshell = {
url = "github:numtide/devshell";
inputs = {
flake-utils.follows = "flake-utils";
nixpkgs.follows = "nixpkgs";
};
};
};
outputs = { self, nixpkgs, devshell, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; overlays = [ devshell.overlays.default ]; config.allowUnfree = true; };
ugent2016 = pkgs.stdenvNoCC.mkDerivation (finalAttrs: {
pname = "ugent2016";
version = "0.10.0";
passthru = {
pkgs = [ finalAttrs.finalPackage ];
tlDeps = with pkgs.texlive; [
etoolbox
kvoptions
xstring
auxhook
translations
fontspec
pgf
textcase
graphics
geometry
setspace
ulem
];
tlType = "run";
};
src = pkgs.fetchurl {
url = "https://github.com/niknetniko/ugent2016/releases/download/${finalAttrs.version}/ugent2016.zip";
hash = "sha256-70/5WHljZwbB//CiKy5AKuVTpwyK2BmbPD/Z4lQwPc8=";
};
nativeBuildInputs = [ pkgs.unzip ];
sourceRoot = ".";
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out
unzip ugent2016.tds -d $out
runHook postInstall
'';
dontFixup = true;
meta = with pkgs.lib; {
description = "Styles for UGent";
license = licenses.unfreeRedistributable;
maintainers = [ ];
platforms = platforms.all;
};
});
in
{
devShells.default = pkgs.devshell.mkShell {
name = "PhD thesis";
packages = [
(pkgs.texlive.combine { inherit (pkgs.texlive) scheme-full; inherit ugent2016; })
pkgs.nixpkgs-fmt
];
commands = [
{
name = "clean";
category = "general commands";
help = "clean directory";
command = "cat .gitignore | xargs rm";
}
];
};
}
);
}