bilibili: refactor (#332733)

authored by

h7x4 and committed by
GitHub
1457235a c33e748d

+48 -26
+48 -26
pkgs/by-name/bi/bilibili/package.nix
··· 1 - { lib 2 - , stdenv 3 - , fetchurl 4 - , electron 5 - , zstd 6 - , makeWrapper 7 }: 8 - 9 - stdenv.mkDerivation rec { 10 - pname = "bilibili"; 11 - version = "1.14.0-1"; 12 - src = fetchurl { 13 - url = "https://github.com/msojocs/bilibili-linux/releases/download/v${version}/io.github.msojocs.bilibili_${version}_amd64.deb"; 14 - hash = "sha256-4+DGL/DNR3wLFUff17OquAM6dOkcsXFNeCqA7ITtCaI="; 15 }; 16 - 17 unpackPhase = '' 18 runHook preUnpack 19 - 20 - ar x $src 21 - tar -I ${zstd}/bin/zstd -xvf data.tar.zst 22 - 23 runHook postUnpack 24 ''; 25 26 - nativeBuildInputs = [ makeWrapper ]; 27 28 installPhase = '' 29 runHook preInstall ··· 32 cp -r usr/share $out/share 33 sed -i "s|Exec=.*|Exec=$out/bin/bilibili|" $out/share/applications/*.desktop 34 cp -r opt/apps/io.github.msojocs.bilibili/files/bin/app $out/opt 35 - makeWrapper ${electron}/bin/electron $out/bin/bilibili \ 36 --argv0 "bilibili" \ 37 - --add-flags "$out/opt/app.asar" 38 39 runHook postInstall 40 ''; 41 42 - meta = with lib; { 43 description = "Electron-based bilibili desktop client"; 44 homepage = "https://github.com/msojocs/bilibili-linux"; 45 - license = with licenses; [ unfree mit ]; 46 - maintainers = with maintainers; [ jedsek kashw2 ]; 47 - platforms = [ "x86_64-linux" ]; 48 - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; 49 mainProgram = "bilibili"; 50 }; 51 }
··· 1 + { 2 + lib, 3 + stdenv, 4 + fetchurl, 5 + electron_30, 6 + dpkg, 7 + makeWrapper, 8 + commandLineArgs ? "", 9 }: 10 + let 11 + version = "1.14.0-2"; 12 + srcs = { 13 + x86_64-linux = fetchurl { 14 + url = "https://github.com/msojocs/bilibili-linux/releases/download/v${version}/io.github.msojocs.bilibili_${version}_amd64.deb"; 15 + hash = "sha256-QQMdEpKE7r/fPMaX/yEoaa7KjilhiPMYLRvGPkv1jds="; 16 + }; 17 + aarch64-linux = fetchurl { 18 + url = "https://github.com/msojocs/bilibili-linux/releases/download/v${version}/io.github.msojocs.bilibili_${version}_arm64.deb"; 19 + hash = "sha256-UaGI4BLhfoYluZpARsj+I0iEmFXYYNfl4JWhBWOOip0="; 20 + }; 21 }; 22 + src = 23 + srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); 24 + in 25 + stdenv.mkDerivation { 26 + pname = "bilibili"; 27 + inherit src version; 28 unpackPhase = '' 29 runHook preUnpack 30 + dpkg -x $src ./ 31 runHook postUnpack 32 ''; 33 34 + nativeBuildInputs = [ 35 + makeWrapper 36 + dpkg 37 + ]; 38 39 installPhase = '' 40 runHook preInstall ··· 43 cp -r usr/share $out/share 44 sed -i "s|Exec=.*|Exec=$out/bin/bilibili|" $out/share/applications/*.desktop 45 cp -r opt/apps/io.github.msojocs.bilibili/files/bin/app $out/opt 46 + makeWrapper ${lib.getExe electron_30} $out/bin/bilibili \ 47 --argv0 "bilibili" \ 48 + --add-flags "$out/opt/app.asar" \ 49 + --add-flags ${lib.escapeShellArg commandLineArgs} 50 51 runHook postInstall 52 ''; 53 54 + meta = { 55 description = "Electron-based bilibili desktop client"; 56 homepage = "https://github.com/msojocs/bilibili-linux"; 57 + license = with lib.licenses; [ 58 + unfree 59 + mit 60 + ]; 61 + maintainers = with lib.maintainers; [ 62 + jedsek 63 + kashw2 64 + bot-wxt1221 65 + ]; 66 + platforms = [ 67 + "x86_64-linux" 68 + "aarch64-linux" 69 + ]; 70 + sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; 71 mainProgram = "bilibili"; 72 }; 73 }