cherry-studio: 1.0.1 -> 1.1.8 (#390414)

authored by Peder Bergebakken Sundt and committed by GitHub e77c31fb dd1206ce

+30 -38
+14 -38
pkgs/by-name/ch/cherry-studio/package.nix
··· 1 1 { 2 2 lib, 3 - stdenv, 4 3 stdenvNoCC, 5 4 fetchFromGitHub, 6 5 cacert, 7 6 yarn-berry, 8 - nodejs, 9 7 electron, 10 8 makeWrapper, 11 9 writableTmpDirAsHomeHook, 12 10 makeDesktopItem, 13 11 copyDesktopItems, 14 - nix-update-script, 15 12 commandLineArgs ? "", 16 13 }: 17 14 18 - stdenv.mkDerivation (finalAttrs: { 15 + stdenvNoCC.mkDerivation (finalAttrs: { 19 16 pname = "cherry-studio"; 20 - version = "1.0.1"; 17 + version = "1.1.8"; 21 18 22 19 src = fetchFromGitHub { 23 20 owner = "CherryHQ"; 24 21 repo = "cherry-studio"; 25 22 tag = "v${finalAttrs.version}"; 26 - hash = "sha256-C8D0XCwIFWG+5WakAK+TmI4VVuIYJBSgkv5ynM2Ewkc="; 23 + hash = "sha256-zZwweJso4KaJMXNUJ+kEvbkHOkhvvPv/IYu/evXzsWs="; 27 24 }; 28 25 29 26 yarnOfflineCache = stdenvNoCC.mkDerivation { ··· 36 33 writableTmpDirAsHomeHook 37 34 ]; 38 35 39 - postConfigure = 40 - let 41 - supportedArchitectures = builtins.toJSON { 42 - os = [ 43 - "darwin" 44 - "linux" 45 - ]; 46 - cpu = [ 47 - "x64" 48 - "ia32" 49 - "arm64" 50 - ]; 51 - libc = [ 52 - "glibc" 53 - "musl" 54 - ]; 55 - }; 56 - in 57 - '' 58 - yarn config set enableTelemetry false 59 - yarn config set enableGlobalCache false 60 - yarn config set supportedArchitectures --json '${supportedArchitectures}' 61 - yarn config set cacheFolder $out 62 - ''; 36 + postConfigure = '' 37 + yarn config set enableTelemetry false 38 + yarn config set enableGlobalCache false 39 + yarn config set --json supportedArchitectures.os '[ "linux", "darwin" ]' 40 + yarn config set --json supportedArchitectures.cpu '["arm", "arm64", "ia32", "x64"]' 41 + yarn config set cacheFolder $out 42 + ''; 63 43 64 44 buildPhase = '' 65 45 runHook preBuild ··· 70 50 ''; 71 51 72 52 outputHashMode = "recursive"; 73 - outputHash = "sha256-DrEkaXkbaY40uYH7niT10OFJH+PD7ip3A4OCwbKmtz8="; 53 + outputHash = "sha256-HKtd+zdP7e/6vmlL4NS8X8gZ8AhxThtOS7taQ+iAnK0="; 74 54 }; 75 55 76 56 nativeBuildInputs = [ ··· 80 60 copyDesktopItems 81 61 ]; 82 62 83 - env = { 84 - ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; 85 - npm_config_build_from_source = "true"; 86 - npm_config_nodedir = nodejs; 87 - }; 63 + env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; 88 64 89 65 postConfigure = '' 90 66 yarn config set enableTelemetry false ··· 126 102 mkdir -p $out/lib/cherry-studio 127 103 cp -r dist/linux-unpacked/{resources,LICENSE*} $out/lib/cherry-studio 128 104 install -Dm644 build/icon.png $out/share/pixmaps/cherry-studio.png 129 - makeWrapper "${lib.getExe electron}" $out/bin/cherry-studio \ 105 + makeWrapper ${lib.getExe electron} $out/bin/cherry-studio \ 130 106 --inherit-argv0 \ 131 107 --add-flags $out/lib/cherry-studio/resources/app.asar \ 132 108 --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \ ··· 135 111 runHook postInstall 136 112 ''; 137 113 138 - passthru.updateScript = nix-update-script { }; 114 + passthru.updateScript = ./update.sh; 139 115 140 116 meta = { 141 117 description = "Desktop client that supports for multiple LLM providers";
+16
pkgs/by-name/ch/cherry-studio/update.sh
··· 1 + #!/usr/bin/env nix-shell 2 + #!nix-shell -i bash -p curl gnused jq nix bash coreutils nix-update 3 + 4 + set -eou pipefail 5 + 6 + latestTag=$(curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} -sL https://api.github.com/repos/CherryHQ/cherry-studio/releases/latest | jq --raw-output .tag_name) 7 + latestVersion=$(echo "$latestTag" | sed 's/^v//') 8 + 9 + currentVersion=$(nix-instantiate --eval -E "with import ./. {}; cherry-studio.version or (lib.getVersion cherry-studio)" | tr -d '"') 10 + 11 + if [[ "$currentVersion" == "$latestVersion" ]]; then 12 + echo "package is up-to-date: $currentVersion" 13 + exit 0 14 + fi 15 + 16 + nix-update cherry-studio --version "$latestVersion"