Files
nixpkgs/pkgs/by-name/me/memos/package.nix
Sefa Eyeoglu 496365ec6d treewide: adjust pnpm.fetchDeps parameter order
It is more common to specify hash as the last attribute of fetcher
function args. Let's move fetcherVersion right above hash for all
occurrences.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
(cherry picked from commit a8c9a2aa3e)
2025-07-23 18:02:12 +02:00

124 lines
2.5 KiB
Nix

{
fetchFromGitHub,
buildGoModule,
stdenvNoCC,
nix-update-script,
nodejs,
lib,
pnpm,
buf,
cacert,
grpc-gateway,
protoc-gen-go,
protoc-gen-go-grpc,
protoc-gen-validate,
}:
let
version = "0.24.4";
src = fetchFromGitHub {
owner = "usememos";
repo = "memos";
rev = "v${version}";
hash = "sha256-Vimc9Z6X1+UBm2UnNnlsYqXEnOV3JcEPm9SD3obKkLc=";
};
memos-protobuf-gen = stdenvNoCC.mkDerivation {
name = "memos-protobuf-gen";
inherit src;
nativeBuildInputs = [
buf
cacert
grpc-gateway
protoc-gen-go
protoc-gen-go-grpc
protoc-gen-validate
];
buildPhase = ''
runHook preBuild
pushd proto
HOME=$TMPDIR buf generate
popd
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/{proto,web/src/types}
cp -r {.,$out}/proto/gen
cp -r {.,$out}/web/src/types/proto
runHook postInstall
'';
outputHashMode = "recursive";
outputHashAlgo = "sha256";
outputHash = "sha256-cJK9wT5uj1MYjYZkzgMSL9nShCO2xPJOYZT+ebndwlY=";
};
memos-web = stdenvNoCC.mkDerivation (finalAttrs: {
pname = "memos-web";
inherit version src;
pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs) pname version src;
sourceRoot = "${finalAttrs.src.name}/web";
fetcherVersion = 1;
hash = "sha256-AyQYY1vtBB6DTcieC7nw5aOOVuwESJSDs8qU6PGyaTw=";
};
pnpmRoot = "web";
nativeBuildInputs = [
nodejs
pnpm.configHook
];
preBuild = ''
cp -r {${memos-protobuf-gen},.}/web/src/types/proto
'';
buildPhase = ''
runHook preBuild
pnpm -C web build
runHook postBuild
'';
installPhase = ''
runHook preInstall
cp -r web/dist $out
runHook postInstall
'';
});
in
buildGoModule {
pname = "memos";
inherit
version
src
memos-web
memos-protobuf-gen
;
vendorHash = "sha256-EzVgQpWJJA7EUKdnnnCIvecaOXg856f/WQyfV/WuWFU=";
preBuild = ''
rm -rf server/router/frontend/dist
cp -r ${memos-web} server/router/frontend/dist
cp -r {${memos-protobuf-gen},.}/proto/gen
'';
passthru.updateScript = nix-update-script {
extraArgs = [
"--subpackage"
"memos-web"
"--subpackage"
"memos-protobuf-gen"
];
};
meta = {
homepage = "https://usememos.com";
description = "Lightweight, self-hosted memo hub";
maintainers = with lib.maintainers; [
indexyz
kuflierl
];
license = lib.licenses.mit;
mainProgram = "memos";
};
}