base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12
[NixPkgs.git] / pkgs / by-name / va / validator-nu / package.nix
blobd52c87e4186bac5c273d091c0339376b5dd1e573
1 { fetchFromGitHub
2 , git
3 , jdk_headless
4 , jre_headless
5 , makeWrapper
6 , python3
7 , stdenvNoCC
8 , lib
9 , testers
12 let
13   pname = "validator-nu";
14   version = "23.4.11-unstable-2023-12-18";
16   src = fetchFromGitHub {
17     owner = "validator";
18     repo = "validator";
19     rev = "c3a401feb6555affdc891337f5a40af238f9ac2d";
20     fetchSubmodules = true;
21     hash = "sha256-pcA3HXduzFKzoOHhor12qvzbGSSvo3k3Bpy2MvvQlCI=";
22   };
24   deps = stdenvNoCC.mkDerivation {
25     pname = "${pname}-deps";
26     inherit version src;
28     nativeBuildInputs = [ git jdk_headless python3 python3.pkgs.certifi ];
30     buildPhase = ''
31       python checker.py dldeps
32     '';
34     installPhase = ''
35       mkdir "$out"
36       mv dependencies extras "$out"
37     '';
39     outputHashMode = "recursive";
40     outputHash = "sha256-LPtxpUd7LAYZHJL7elgcZOTaTgHqeqquiB9hiuajA6c=";
41   };
44 stdenvNoCC.mkDerivation (finalAttrs: {
45   inherit pname version src;
47   nativeBuildInputs = [ git jdk_headless makeWrapper python3 ];
49   postPatch = ''
50     substituteInPlace build/build.py --replace-warn \
51       'validatorVersion = "%s.%s.%s" % (year, month, day)' \
52       'validatorVersion = "${finalAttrs.version}"'
53   '';
55   buildPhase = ''
56     ln -s '${deps}/dependencies' '${deps}/extras' .
57     JAVA_HOME='${jdk_headless}' python checker.py build
58   '';
60   installPhase = ''
61     runHook preInstall
63     mkdir -p "$out/bin" "$out/share/java"
64     mv build/dist/vnu.jar "$out/share/java/"
65     makeWrapper "${jre_headless}/bin/java" "$out/bin/vnu" \
66       --add-flags "-jar '$out/share/java/vnu.jar'"
68     runHook postInstall
69   '';
71   passthru.tests.version = testers.testVersion {
72     package = finalAttrs.finalPackage;
73   };
75   meta = {
76     description = "Helps you catch problems in your HTML/CSS/SVG";
77     homepage = "https://validator.github.io/validator/";
78     license = lib.licenses.mit;
79     maintainers = with lib.maintainers; [ andersk ivan ];
80     mainProgram = "vnu";
81     platforms = lib.platforms.all;
82     sourceProvenance = with lib.sourceTypes; [ binaryBytecode fromSource ];
83   };