66 lines
1.6 KiB
Nix
66 lines
1.6 KiB
Nix
{
|
|
lib,
|
|
gamja,
|
|
fetchFromSourcehut,
|
|
buildNpmPackage,
|
|
runCommand,
|
|
python3,
|
|
writeText,
|
|
brotli,
|
|
zopfli,
|
|
xorg,
|
|
# optional configuration attrSet, see https://git.sr.ht/~emersion/gamja#configuration-file for possible values
|
|
gamjaConfig ? null,
|
|
}:
|
|
buildNpmPackage rec {
|
|
pname = "gamja";
|
|
version = "1.0.0-beta.9";
|
|
|
|
src = fetchFromSourcehut {
|
|
owner = "~emersion";
|
|
repo = "gamja";
|
|
rev = "v${version}";
|
|
hash = "sha256-09rCj9oMzldRrxMGH4rUnQ6wugfhfmJP3rHET5b+NC8=";
|
|
};
|
|
|
|
npmDepsHash = "sha256-LxShwZacCctKAfMNCUMyrSaI1hIVN80Wseq/d8WITkc=";
|
|
|
|
# without this, the aarch64-linux build fails
|
|
nativeBuildInputs = [python3];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
cp -r dist $out
|
|
${lib.optionalString (gamjaConfig != null) "cp ${writeText "gamja-config" (builtins.toJSON gamjaConfig)} $out/config.json"}
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
passthru = {
|
|
data-compressed =
|
|
runCommand "soju-data-compressed" {
|
|
nativeBuildInputs = [brotli zopfli xorg.lndir];
|
|
} ''
|
|
mkdir $out
|
|
lndir ${gamja}/ $out/
|
|
|
|
find $out \
|
|
-name '*.css' -or \
|
|
-name '*.js' -or \
|
|
-name '*.map' -or \
|
|
-name '*.webmanifest' -or \
|
|
-name '*.html' | \
|
|
tee >(xargs -n1 -P''$(nproc) ${zopfli}/bin/zopfli) | \
|
|
xargs -n1 -P''$(nproc) ${brotli}/bin/brotli
|
|
'';
|
|
};
|
|
|
|
meta = with lib; {
|
|
description = "A simple IRC web client";
|
|
homepage = "https://git.sr.ht/~emersion/gamja";
|
|
license = licenses.agpl3Only;
|
|
maintainers = with maintainers; [motiejus];
|
|
};
|
|
}
|