Add flake check

This commit is contained in:
Smaug123
2023-10-01 16:55:13 +01:00
parent 2ffff26dcb
commit 9b71477f59
11 changed files with 156 additions and 101 deletions

100
flake.nix
View File

@@ -44,51 +44,77 @@
}:
flake-utils.lib.eachDefaultSystem (system: let
pkgs = nixpkgs.legacyPackages.${system};
in let
buildHugo = scripts.lib.createShellScript pkgs "hugo" ./docker/hugo/build.sh;
in let
katex-parts = pkgs.stdenv.mkDerivation {
__contentAddressed = true;
pname = "katex";
version = "0.1.0";
src = katex.outputs.packages.${system}.default;
installPhase = ''
mkdir "$out"
ls -la .
cp -r ./libexec/katex/dist "$out/dist"
'';
};
in let
website = pkgs.stdenv.mkDerivation {
__contentAddressed = true;
pname = "patrickstevens.co.uk";
version = "0.1.0";
src = ./hugo;
buildInputs = [
pkgs.hugo
pkgs.html-tidy
];
buildPhase = ''
${scripts.lib.createShellScript pkgs "all" ./build/all.sh}/run.sh "${pdfs.packages.${system}.default}" "${images.packages.${system}.default}" "${anki-decks.packages.${system}.default}" "${buildHugo}" "${katex-parts}" "${extra-content}"
'';
checkPhase = ''
echo "Linting HTML."
${pkgs.html-tidy}/bin/tidy
'';
installPhase = ''
mv output $out
'';
};
in rec {
packages = flake-utils.lib.flattenTree {
gitAndTools = pkgs.gitAndTools;
default = website;
};
defaultPackage =
let
buildHugo = scripts.lib.createShellScript pkgs "hugo" ./docker/hugo/build.sh;
in let
katex-parts = pkgs.stdenv.mkDerivation {
__contentAddressed = true;
pname = "katex";
version = "0.1.0";
src = katex.outputs.packages.${system}.default;
installPhase = ''
mkdir "$out"
ls -la .
cp -r ./libexec/katex/dist "$out/dist"
'';
};
in
pkgs.stdenv.mkDerivation {
__contentAddressed = true;
pname = "patrickstevens.co.uk";
version = "0.1.0";
src = ./hugo;
buildInputs = [
pkgs.hugo
pkgs.html-tidy
];
buildPhase = ''
${scripts.lib.createShellScript pkgs "all" ./build/all.sh}/run.sh "${pdfs.packages.${system}.default}" "${images.packages.${system}.default}" "${anki-decks.packages.${system}.default}" "${buildHugo}" "${katex-parts}" "${extra-content}"
'';
checks = {
fmt-check = pkgs.stdenvNoCC.mkDerivation {
name = "fmt-check";
src = ./.;
nativeBuildInputs = [pkgs.alejandra pkgs.shellcheck pkgs.shfmt];
checkPhase = ''
echo "Linting HTML."
${pkgs.html-tidy}/bin/tidy
find . -type f -name '*.sh' | xargs shfmt -d -s -i 2 -ci
alejandra -c .
find . -type f -name '*.sh' -exec shellcheck -x {} \;
'';
installPhase = "mkdir $out";
dontBuild = true;
doCheck = true;
};
installPhase = ''
mv output $out
website-check = pkgs.stdenvNoCC.mkDerivation {
name = "website-check";
src = website;
installPhase = "mkdir $out";
dontBuild = true;
doCheck = true;
checkPhase = ''
${pkgs.bash}/bin/bash ${scripts.lib.createShellScript pkgs "linkcheck" ./linkcheck.sh}/run.sh ${pkgs.lynx}/bin/lynx
'';
};
};
});
}