Files
nix/packages/comentario/default.nix
Nikolaos Karaolidis 367d65e1ba Add comentario
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2025-09-15 12:07:53 +01:00

87 lines
2.3 KiB
Nix

{ pkgs, ... }:
# AUTO-UPDATE: nix-update --flake comentario --version=branch=dev --subpackage frontend
pkgs.buildGo125Module (finalAttrs: {
pname = "comentario";
version = "3.14.0-unstable-2025-09-15";
src = pkgs.fetchFromGitLab {
owner = "comentario";
repo = "comentario";
# FIXME: Stable rev once type error is fixed
rev = "d79035b41a912a432b74eb7fb0240b79cabff6bf";
hash = "sha256-nTOojxYBDeA5Z+rh+C+SbFJ4fzmr8sT2oZmO+chiXJM=";
};
patches = [
# fe: dynamic configuration env vars
(builtins.fetchurl {
url = "https://gitlab.com/comentario/comentario/-/merge_requests/23.patch";
sha256 = "sha256:0ih5hwadjkh47vvji4jygpfxcfpjcarhcwazc7asxpfxc87g04pv";
})
./superuser-claim.patch
];
vendorHash = "sha256-AOI/WnVkrSgJlT2FtYOTuifOPw8sfc4C0g/prVkvJlA=";
nativeBuildInputs = with pkgs; [
go-swagger
makeWrapper
];
subPackages = [ "." ];
frontend = pkgs.stdenv.mkDerivation (finalFrontendAttrs: {
inherit (finalAttrs)
pname
version
src
patches
;
missingHashes = ./missing-hashes.json;
offlineCache = pkgs.yarn-berry.fetchYarnBerryDeps {
inherit (finalFrontendAttrs) src patches missingHashes;
hash = "sha256-dYk85+e9C0yHZ9jYgsefStZfyQFZZku+Z4Kn7bN4Qjw=";
};
nativeBuildInputs = with pkgs; [
nodejs
openapi-generator-cli
hugo
yarn-berry
yarn-berry.yarnBerryConfigHook
];
env = {
CYPRESS_INSTALL_BINARY = "0";
YARN_NODE_LINKER = "node-modules";
};
buildPhase = ''
(cd frontend && openapi-generator-cli generate -i ../resources/swagger/swagger.yml -g typescript-angular -o generated-api)
yarn run build:prod
'';
installPhase = ''
cp -r build/frontend $out
'';
});
preBuild = ''
go generate
'';
installPhase = ''
mkdir -p $out/bin $out/lib/${finalAttrs.pname}
cp -r $GOPATH/bin/comentario $out/bin/${finalAttrs.pname}
cp -r db templates $out/lib/${finalAttrs.pname}
wrapProgram $out/bin/${finalAttrs.pname} \
--add-flags "--db-migration-path=$out/lib/${finalAttrs.pname}/db" \
--add-flags "--template-path=$out/lib/${finalAttrs.pname}/templates" \
--add-flags "--static-path=${finalAttrs.frontend}"
'';
meta.mainProgram = finalAttrs.pname;
})