diff options
author | Nick Cao <nickcao@nichi.co> | 2023-06-03 09:47:36 +0800 |
---|---|---|
committer | Nick Cao <nickcao@nichi.co> | 2023-06-03 09:48:57 +0800 |
commit | 9eee76ae0d5961994183eba52326320e467b74b4 (patch) | |
tree | 27f0456255104742c0699cb7d2df8bf9e61e028d /pkgs/applications | |
parent | 067dcbbb4bc8df5ab61a48be7a83d8ddcdd4ca90 (diff) |
telegram-desktop: use nix-update-script
Diffstat (limited to 'pkgs/applications')
3 files changed, 5 insertions, 76 deletions
diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix index 28f3c363bbd8b..4c113e7f2d044 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix @@ -55,6 +55,7 @@ , microsoft-gsl , rlottie , stdenv +, nix-update-script }: # Main reference: @@ -74,7 +75,6 @@ in stdenv.mkDerivation rec { pname = "telegram-desktop"; version = "4.8.1"; - # Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py src = fetchFromGitHub { owner = "telegramdesktop"; @@ -186,7 +186,7 @@ stdenv.mkDerivation rec { passthru = { inherit tg_owt; - updateScript = ./update.py; + updateScript = nix-update-script { }; }; meta = with lib; { diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix index 025f5f83ecf35..bc123e212d075 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix @@ -4,7 +4,7 @@ , openh264, usrsctp, libevent, libvpx , libX11, libXtst, libXcomposite, libXdamage, libXext, libXrender, libXrandr, libXi , glib, abseil-cpp, pcre, util-linuxMinimal, libselinux, libsepol, pipewire -, mesa, valgrind, libepoxy, libglvnd +, mesa, libepoxy, libglvnd, unstableGitUpdater }: stdenv.mkDerivation { @@ -54,6 +54,8 @@ stdenv.mkDerivation { abseil-cpp openh264 usrsctp libevent libvpx openssl ]; + passthru.updateScript = unstableGitUpdater { }; + meta = with lib; { license = licenses.bsd3; maintainers = with maintainers; [ oxalica ]; diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/update.py b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/update.py deleted file mode 100755 index 89e40218623b0..0000000000000 --- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/update.py +++ /dev/null @@ -1,73 +0,0 @@ -#! /usr/bin/env nix-shell -#! nix-shell -i python3 -p python3 nix nix-prefetch-git - -import fileinput -import json -import os -import re -import subprocess - -from datetime import datetime -from urllib.request import urlopen, Request - - -DIR = os.path.dirname(os.path.abspath(__file__)) -HEADERS = {'Accept': 'application/vnd.github.v3+json'} - - -def github_api_request(endpoint): - base_url = 'https://api.github.com/' - request = Request(base_url + endpoint, headers=HEADERS) - with urlopen(request) as http_response: - return json.loads(http_response.read().decode('utf-8')) - - -def get_commit_date(repo, sha): - url = f'https://api.github.com/repos/{repo}/commits/{sha}' - request = Request(url, headers=HEADERS) - with urlopen(request) as http_response: - commit = json.loads(http_response.read().decode()) - date = commit['commit']['committer']['date'].rstrip('Z') - date = datetime.fromisoformat(date).date().isoformat() - return 'unstable-' + date - - -def nix_prefetch_git(url, rev): - """Prefetches the requested Git revision (incl. submodules) of the given repository URL.""" - print(f'nix-prefetch-git {url} {rev}') - out = subprocess.check_output(['nix-prefetch-git', '--quiet', '--url', url, '--rev', rev, '--fetch-submodules']) - return json.loads(out)['sha256'] - - -def nix_prefetch_url(url, unpack=False): - """Prefetches the content of the given URL.""" - print(f'nix-prefetch-url {url}') - options = ['--type', 'sha256'] - if unpack: - options += ['--unpack'] - out = subprocess.check_output(['nix-prefetch-url'] + options + [url]) - return out.decode('utf-8').rstrip() - - -def update_file(relpath, version, sha256, rev=None): - file_path = os.path.join(DIR, relpath) - with fileinput.FileInput(file_path, inplace=True) as f: - for line in f: - result = line - result = re.sub(r'^ version = ".+";', f' version = "{version}";', result) - result = re.sub(r'^ sha256 = ".+";', f' sha256 = "{sha256}";', result) - if rev: - result = re.sub(r'^ rev = ".*";', f' rev = "{rev}";', result) - print(result, end='') - - -if __name__ == "__main__": - tdesktop_tag = github_api_request('repos/telegramdesktop/tdesktop/releases/latest')['tag_name'] - tdesktop_version = tdesktop_tag.lstrip('v') - tdesktop_hash = nix_prefetch_git('https://github.com/telegramdesktop/tdesktop.git', tdesktop_tag) - update_file('default.nix', tdesktop_version, tdesktop_hash) - tg_owt_ref = github_api_request('repos/desktop-app/tg_owt/commits/master')['sha'] - tg_owt_version = get_commit_date('desktop-app/tg_owt', tg_owt_ref) - tg_owt_hash = nix_prefetch_git('https://github.com/desktop-app/tg_owt.git', tg_owt_ref) - update_file('tg_owt.nix', tg_owt_version, tg_owt_hash, tg_owt_ref) - tg_owt_ref = github_api_request('repos/desktop-app/tg_owt/commits/master')['sha'] |