tis-lazygit-portable icon

lazygit

Paquet d’installation silencieuse pour lazygit

0.56.0-1

Les paquets PREPROD sont des paquets construits via LUTI. Ils restent généralement 5 jours en PREPROD, après quoi un scan VirusTotal est effectué.
Si le paquet réussit ce dernier contrôle, il est promu en PROD et publié sur le store.

  • package: tis-lazygit-portable
  • name: lazygit
  • version: 0.56.0-1
  • maintainer: Amel FRADJ,Bertrand Lemoigne
  • licence: MIT license
  • target_os: linux
  • impacted_process: lazygit
  • architecture: arm64
  • signature_date:
  • size: 7.22 Mo
  • homepage : https://donorbox.org/lazygit

package           : tis-lazygit-portable
version           : 0.56.0-1
architecture      : arm64
section           : base
priority          : optional
name              : lazygit
categories        : 
maintainer        : Amel FRADJ,Bertrand Lemoigne
description       : A simple terminal UI for git commands, written in Go with the gocui library
depends           : 
conflicts         : 
maturity          : PREPROD
locale            : 
target_os         : linux
min_wapt_version  : 
sources           : 
installed_size    : 
impacted_process  : lazygit
description_fr    : Une interface de terminal simple pour les commandes git, écrite en Go avec la bibliothèque gocui
description_pl    : Prosty interfejs terminala dla poleceń git, napisany w języku Go przy użyciu biblioteki gocui
description_de    : Eine einfache Terminal-Oberfläche für Git-Befehle, geschrieben in Go mit der gocui-Bibliothek
description_es    : Una sencilla interfaz de terminal para comandos git, escrita en Go con la biblioteca gocui
description_pt    : Uma interface de terminal simples para comandos git, escrita em Go com a biblioteca gocui
description_it    : Una semplice interfaccia terminale per i comandi di git, scritta in Go con la libreria gocui
description_nl    : Een eenvoudige terminal UI voor git commando's, geschreven in Go met de gocui bibliotheek
description_ru    : Простой терминальный пользовательский интерфейс для команд git, написанный на Go с использованием библиотеки gocui
audit_schedule    : 
editor            : 
keywords          : 
licence           : MIT license
homepage          : https://donorbox.org/lazygit
package_uuid      : 045a1486-ca81-450b-a571-e856739f163c
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 
max_os_version    : 
icon_sha256sum    : e34d0e3c2ab4bd743db7dde335dba0c5de73c28ad51e6ffcf003ca15650be2ee
signer            : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date    : 2025-11-01T10:31:15.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature         : IIi4uPycL9Fk/ElqDpwBwPVfO9l36F1ZOPdiqJzQtFb0ODPC2IbxYbBBbh1VR2BUozST8xb4RC+GsYzI+OBuqcBuTuwR2riAneV7tMaWEcRwN/ZVSPidF3A7YGJ43/jXUNvBbHkW0zdpvQmM7a6SQeUmdRK3wCJDBF/GI4Tdlk9UslDY3BxdX5aPa+MR08CcB46YPmPJItgL/PXP1si4TgE63qHwW0Kj0RpegmyUr7UFWFbpfBrXfHrrBloYgL8ONlJOCte0zcz0qo/TlynDcn/9M/rrYuBMyCqgt9pxX5saI0zBc1j7kpAUZGBZs6c5GmWJxhQdXihaDp1MvvTSsA==

# -*- coding: utf-8 -*-
from setuphelpers import *
import tarfile
from typing import List, Optional


app_name = "lazygit"
bin_name = "lazygit"
bin_path = "/usr/local/bin"
app_path = makepath("/opt", app_name)

bin_target = makepath(bin_path, bin_name)
app_target = makepath(app_path, bin_name)

def install():
    extract_path = glob.glob("lazygit_*_linux_arm64.tar.gz")[0]
    mkdirs(app_path)
    extract_tar(extract_path, app_path)
    
    if isfile(bin_target):
        remove_file(bin_target)

    os.symlink(app_target, bin_target)

def uninstall():
    print(f"Removing {app_name}")
    if isfile(bin_target):
        remove_file(bin_target)
    if isdir(app_path):
        remove_tree(app_path)

def extract_tar(
    tar_path: str,
    extract_path: str = ".",
    exclude_list: Optional[List[str]] = None,
    include_list: Optional[List[str]] = None
) -> None:
    """
    Extracts a tar archive to the given directory, with optional inclusion or exclusion filtering.

    :param tar_path: Path to the .tar (or .tar.gz, .tar.bz2, etc.) archive.
    :param extract_path: Directory where files should be extracted.
    :param exclude_list: List of path prefixes to exclude from extraction.
    :param include_list: List of path prefixes to include exclusively. Overrides exclude_list if provided.
    """
    with tarfile.open(tar_path, 'r:*') as tar:
        all_members = tar.getmembers()

        if include_list:
            include_set = set(include_list)
            members = [
                m for m in all_members
                if any(m.name.startswith(inc) for inc in include_set)
            ]
        elif exclude_list:
            exclude_set = set(exclude_list)
            members = [
                m for m in all_members
                if not any(m.name.startswith(exc) for exc in exclude_set)
            ]
        else:
            members = all_members

        tar.extractall(path=extract_path, members=members)

# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *


def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    app_name = control.name

    api_url = "https://api.github.com/repos/jesseduffield/lazygit/releases/latest"

    os_type = control.target_os + "-" + ensure_list(control.architecture)[0]
    releases_dict = wgets(api_url, proxies=proxies, as_json=True)
    version = releases_dict["tag_name"].replace("v", "")

    update_dict = {
        "linux-arm64": f"lazygit_{version}_linux_arm64.tar.gz",
        "linux-x64": f"lazygit_{version}_linux_x86_64.tar.gz"
    }

    for asset in releases_dict["assets"]:
        if asset["name"] == update_dict[os_type]:
            download_url = asset["browser_download_url"]
            latest_bin = download_url.rsplit("/", 1)[-1]
            latest_bin_extension =  latest_bin.rsplit(".", 1)[-1]
            break

    # Downloading latest binaries
    print(f"Latest {app_name} version is: {version}")
    print(f"Download URL is: {download_url}")
    if not isfile(latest_bin):
        print(f"Downloading: {latest_bin}")
        wget(download_url, latest_bin, proxies=proxies)
    else:
        print(f"Binary is present: {latest_bin}")

    # Changing version of the package
    if Version(version) > Version(control.get_software_version()):
        print(f"Software version updated (from: {control.get_software_version()} to: {Version(version)})")
        package_updated = True
    else:
        print(f"Software version up-to-date ({Version(version)})")

    for f in glob.glob(f'*.{latest_bin_extension}'):
        if f != latest_bin:
            remove_file(f)

    control.set_software_version(version)
    control.save_control_to_wapt()

    return package_updated

01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
d3597b75af6ba22205a2617185f318c9331b6e19e6f6e6db8415e825bbb98293 : WAPT/control
e34d0e3c2ab4bd743db7dde335dba0c5de73c28ad51e6ffcf003ca15650be2ee : WAPT/icon.png
57503b0074beaaeaac35da2d462d1ddf2af52d8c822766c935ea5515ba21875c : lazygit_0.56.0_linux_arm64.tar.gz
f80093e6d448b0a41f37b07afe25e9be37fc641b3adf7ae1f5f80316f7e30b1f : luti.json
4a4514f2d4dae154051ecf99563d79d98245b3478b32547103ab75286b76d89a : setup.py
679aab414f17d5aa49c595cecd396e00105092cd61d81bd55821f98456a3a74c : update_package.py