tis-lazygit-portable icon

lazygit

Paquet d’installation silencieuse pour lazygit

0.55.1-1

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

package           : tis-lazygit-portable
version           : 0.55.1-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          : PROD
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      : 20d419de-c9d3-4ceb-affe-6553b773e3c3
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 
max_os_version    : 
icon_sha256sum    : e34d0e3c2ab4bd743db7dde335dba0c5de73c28ad51e6ffcf003ca15650be2ee
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date    : 2025-11-03T17:05:29.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         : wXw3tEJEUsUqMdvA3HVRiOGVByS3iKsjVBbwa420Wm4FI6ijhj3GKR7yAwmfu78JZNOlzXpg3fqV9jT8hQBzH+QUMijLVYw0K0jhSA42NTeo1MCpk4zzLasVCbj5/NAihQjg9f8jPHR8aW2++Bl05zEISDixZyLPJq+E9LK0nGbsA/gL5DTCx9k9PJe5oOMxTj+hV74fWYL4ng22ADKUT/luna94Hb6xOUC8ufsOvQ6UsmDe7385N440MnCJHWGik4/aI8l0+4MCLW8lGib7e3eIVt0D+SfgMYVARy/Qv8/VLko7xZQUUbK3DCGjufGTR27scmd50neS/tcUpsYtOw==

# -*- 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

38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
afafe83716245721bc9391e439b09f89800c6a9e97519ca6b81234fe893080f0 : WAPT/control
e34d0e3c2ab4bd743db7dde335dba0c5de73c28ad51e6ffcf003ca15650be2ee : WAPT/icon.png
ebaa6da4221f036a8c5bab865241ebaabc990752307f4cf59a89dca520f3f59f : lazygit_0.55.1_linux_arm64.tar.gz
430a43615b2eb2e3c267840ca889812bf22bfb5ae46cd07bdef7526944e5f67f : luti.json
4a4514f2d4dae154051ecf99563d79d98245b3478b32547103ab75286b76d89a : setup.py
679aab414f17d5aa49c595cecd396e00105092cd61d81bd55821f98456a3a74c : update_package.py