tis-lazygit-portable icon

lazygit

Paquet d’installation silencieuse pour lazygit

0.60.0-1

Les paquets PREPROD sont des paquets construits via LUTI. Ils restent généralement 5 jours en PREPROD, après quoi un deuxième scan VirusTotal est effectué pour vérifier que le status n'a pas changé.
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.60.0-1
  • maintainer: Amel FRADJ,Bertrand Lemoigne
  • licence: MIT license
  • target_os: linux
  • impacted_process: lazygit
  • architecture: x64
  • signature_date:
  • size: 7.94 Mo
  • homepage : https://donorbox.org/lazygit

package           : tis-lazygit-portable
version           : 0.60.0-1
architecture      : x64
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      : e0daec5b-7d75-4f26-bc33-9efed9e02189
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 
max_os_version    : 
icon_sha256sum    : e34d0e3c2ab4bd743db7dde335dba0c5de73c28ad51e6ffcf003ca15650be2ee
signer            : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date    : 2026-03-09T20:23:37.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         : IWwXMgrdStJD6rEdyhGScahMBrgmr1hWkYZ404jiZMBDhYoxo3gkEc5a1mVmZNv15eKZSAD3MZ8GUnchPyjy6+RiHn1PRq476A6W1VeOrxROyuFojFRH7allKR1vCEanZ64bRTRNqEBJNYALgGA59ppbrERt5Pg6vtgCqZYZEbLb4YAkpQ5P2EevIVn0P/fRwLklEYz6Iw3hmMuOOjSE7SmG3UQBxYf8KyXAVYm7aYiONlTbDjGjA+x/T5kHQR/WEOVuOLewM8iwkd0jSLHYDHFTD72Y7Sx4qAIQgI+JmINl2D1aN8djFPxXf3CobjWGsAFBDyF5q8IRNDSBmoFtoA==

# -*- 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_x86_64.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
32fd8926f13485c5aec881414a6b51d993ca7809c21c2c93149f7751cf3be13c : WAPT/control
e34d0e3c2ab4bd743db7dde335dba0c5de73c28ad51e6ffcf003ca15650be2ee : WAPT/icon.png
6252ca6cf98bc4fd3e0d927b54225910cfa57b065d0ad88263f14592f7f9ab15 : lazygit_0.60.0_linux_x86_64.tar.gz
08929a18d08607fd5f5c726f1280cb06e90e5f2eaaa9bf323c5ab63c7b7d1930 : luti.json
bdd73c3cbc061c2c879740564ee9ff3334e2e82484d99466368f6e3a368b297c : setup.py
679aab414f17d5aa49c595cecd396e00105092cd61d81bd55821f98456a3a74c : update_package.py