qq: refactor update script
This commit is contained in:
@@ -29,24 +29,14 @@
|
||||
}:
|
||||
|
||||
let
|
||||
sources = import ./sources.nix;
|
||||
srcs = {
|
||||
x86_64-linux = fetchurl {
|
||||
url = sources.amd64_url;
|
||||
hash = sources.amd64_hash;
|
||||
};
|
||||
aarch64-linux = fetchurl {
|
||||
url = sources.arm64_url;
|
||||
hash = sources.arm64_hash;
|
||||
};
|
||||
};
|
||||
src =
|
||||
srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
sources = import ./sources.nix { inherit fetchurl; };
|
||||
source =
|
||||
sources.${stdenv.hostPlatform.system}
|
||||
or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "qq";
|
||||
version = sources.version;
|
||||
inherit src;
|
||||
inherit (source) version src;
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
|
||||
@@ -1,9 +1,19 @@
|
||||
# Generated by ./update.sh - do not update manually!
|
||||
# Last updated: 2025-05-30
|
||||
{ fetchurl }:
|
||||
{
|
||||
version = "3.2.17-2025.5.21";
|
||||
amd64_url = "https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.17_250521_amd64_01.deb";
|
||||
arm64_url = "https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.17_250521_arm64_01.deb";
|
||||
arm64_hash = "sha256-PdZ9yHyyx55Y6J59ZsjDsXhXHyNkk1JBS9K0i0vuX/Q=";
|
||||
amd64_hash = "sha256-BG6Qz+hquexSa5QCwWx6vucb4TS0dUQ6UYKB/zkkI1g=";
|
||||
aarch64-linux = {
|
||||
version = "3.2.17-2025.5.21";
|
||||
src = fetchurl {
|
||||
url = "https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.17_250521_arm64_01.deb";
|
||||
hash = "sha256-PdZ9yHyyx55Y6J59ZsjDsXhXHyNkk1JBS9K0i0vuX/Q=";
|
||||
};
|
||||
};
|
||||
x86_64-linux = {
|
||||
version = "3.2.17-2025.5.21";
|
||||
src = fetchurl {
|
||||
url = "https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.17_250521_amd64_01.deb";
|
||||
hash = "sha256-BG6Qz+hquexSa5QCwWx6vucb4TS0dUQ6UYKB/zkkI1g=";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -5,27 +5,40 @@ set -euo pipefail
|
||||
|
||||
cd $(readlink -e $(dirname "${BASH_SOURCE[0]}"))
|
||||
|
||||
payload=$(curl https://im.qq.com/rainbow/linuxQQDownload | grep -oP "var params= \K\{.*\}(?=;)")
|
||||
amd64_url=$(jq -r .x64DownloadUrl.deb <<< "$payload")
|
||||
arm64_url=$(jq -r .armDownloadUrl.deb <<< "$payload")
|
||||
# linux
|
||||
|
||||
version=$(jq -r .version <<< "$payload")-$(jq -r .updateDate <<< "$payload")
|
||||
linux_url=$(curl -s https://im.qq.com/linuxqq/index.shtml | grep -oP 'var rainbowConfigUrl = "\K.*(?=";)')
|
||||
linux_payload=$(curl "$linux_url" | grep -oP "var params= \K\{.*\}(?=;)")
|
||||
linux_version=$(jq -r .version <<< "$linux_payload")-$(jq -r .updateDate <<< "$linux_payload")
|
||||
|
||||
amd64_hash=$(nix-prefetch-url $amd64_url)
|
||||
arm64_hash=$(nix-prefetch-url $arm64_url)
|
||||
linux_aarch64_url=$(jq -r .armDownloadUrl.deb <<< "$linux_payload")
|
||||
linux_x86_64_url=$(jq -r .x64DownloadUrl.deb <<< "$linux_payload")
|
||||
|
||||
linux_aarch64_hash=$(nix-prefetch-url $linux_aarch64_url)
|
||||
linux_x86_64_hash=$(nix-prefetch-url $linux_x86_64_url)
|
||||
|
||||
# use friendlier hashes
|
||||
amd64_hash=$(nix hash convert --to sri --hash-algo sha256 "$amd64_hash")
|
||||
arm64_hash=$(nix hash convert --to sri --hash-algo sha256 "$arm64_hash")
|
||||
linux_aarch64_hash=$(nix hash convert --to sri --hash-algo sha256 "$linux_aarch64_hash")
|
||||
linux_x86_64_hash=$(nix hash convert --to sri --hash-algo sha256 "$linux_x86_64_hash")
|
||||
|
||||
cat >sources.nix <<EOF
|
||||
# Generated by ./update.sh - do not update manually!
|
||||
# Last updated: $(date +%F)
|
||||
{ fetchurl }:
|
||||
{
|
||||
version = "$version";
|
||||
amd64_url = "$amd64_url";
|
||||
arm64_url = "$arm64_url";
|
||||
arm64_hash = "$arm64_hash";
|
||||
amd64_hash = "$amd64_hash";
|
||||
aarch64-linux = {
|
||||
version = "$linux_version";
|
||||
src = fetchurl {
|
||||
url = "$linux_aarch64_url";
|
||||
hash = "$linux_aarch64_hash";
|
||||
};
|
||||
};
|
||||
x86_64-linux = {
|
||||
version = "$linux_version";
|
||||
src = fetchurl {
|
||||
url = "$linux_x86_64_url";
|
||||
hash = "$linux_x86_64_hash";
|
||||
};
|
||||
};
|
||||
}
|
||||
EOF
|
||||
|
||||
Reference in New Issue
Block a user