tis-gitui icon

GitUI

Paquet d’installation silencieuse pour GitUI

0.28.1-2
Development
Development

  • package: tis-gitui
  • name: GitUI
  • version: 0.28.1-2
  • categories: Development
  • maintainer: WAPT Team,Tranquil IT,Ingrid TALBOT
  • editor: extrawurst
  • licence: opensource_free,cpe:/a:mit:x11_license,wapt_public
  • locale: all
  • target_os: linux
  • impacted_process: gitui
  • architecture: x64
  • signature_date:
  • size: 6.85 Mo
  • installed_size: 6.66 Mo

package           : tis-gitui
version           : 0.28.1-2
architecture      : x64
section           : base
priority          : optional
name              : GitUI
categories        : Development
maintainer        : WAPT Team,Tranquil IT,Ingrid TALBOT
description       : GitUI is a git GUI that works in the terminal
depends           : 
conflicts         : 
maturity          : PROD
locale            : all
target_os         : linux
min_wapt_version  : 2.3
sources           : 
installed_size    : 6663168
impacted_process  : gitui
description_fr    : GitUI est une interface graphique git qui fonctionne dans le terminal
description_pl    : GitUI to graficzny interfejs użytkownika git, który działa w terminalu
description_de    : GitUI ist eine Git-GUI, die im Terminal funktioniert
description_es    : GitUI es una GUI de git que funciona en el terminal
description_pt    : GitUI é uma GUI do git que funciona no terminal
description_it    : GitUI è una GUI di git che funziona nel terminale
description_nl    : GitUI is een git GUI die in de terminal werkt
description_ru    : GitUI - это графический интерфейс git, который работает в терминале
audit_schedule    : 
editor            : extrawurst
keywords          : git,terminal,interface
licence           : opensource_free,cpe:/a:mit:x11_license,wapt_public
homepage          : 
package_uuid      : d0511db0-3180-4005-b59b-138726a73d98
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 
max_os_version    : 
icon_sha256sum    : cb274cdd0b059366eb59f4dc8f7a72f257d4a9fc490589a23cdc32f4c30b2f3b
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date    : 2026-03-30T01:05:34.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         : Al31eSIQgUOdkpS4BdcqVvCQZYN7aVUxNzcSHwVJClXRjktNoe+rlyt9dL/Q8HRXFdcYooc15a2/Tg+Ual+sPB5p3cK2YYt76njfFNBKbQ5jVEnugszmI7shahLZbqhONIjho9gZOSGYSq5UvjHNj82N42h6DdEjIu8G1C6N2Xfw7FsxIWA3+TgyEEg/yACjIYk4hYhFbf5jWJbu8aprCj68vJOgwtzKx55gLKTIxSKRUzKbG7bBiwQ4Xd2+GYq+EFXUVc6JP5lbh9TTTgDGzrE/gutc4yyUf4hfGGsN2IMmU13GLHDUVkgV8xEMVOSw/R9D1ArHfXadPk3nJVJBdQ==

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


app_name = "gitui"
bin_name = "gitui"
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("gitui-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/extrawurst/gitui/releases/latest"
    update_dict = {
        "windows-x64": "gitui-win.msi",
        "linux-x64": "gitui-linux-x86_64.tar.gz"
    }
    os_type = control.target_os + "-" + ensure_list(control.architecture)[0]

    releases_dict = wgets(api_url, proxies=proxies, as_json=True)
    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]
            version = releases_dict["tag_name"].replace("v", "")
            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
8ec1c6f38a0d8249cf512c4475c8830cf76fd08845b3a659f65426cf448b0901 : WAPT/control
cb274cdd0b059366eb59f4dc8f7a72f257d4a9fc490589a23cdc32f4c30b2f3b : WAPT/icon.png
f6149b9ae203397158b0c89c13cfde718e7121d3d3cd2ebc597f93d6628d9b5b : gitui-linux-x86_64.tar.gz
9b002af27e8395a25d34b2b44556022df2bff8b15f1a48a577c1918ffb6b2ef9 : luti.json
abe0f0f06205a8f65e3ce7e21f7e962b084ad0b9c91d566da07d63f97d3f2dab : setup.py
2e612f6fda02de7587cfcae343292a8f0a3420fdcfd988807f441df259c2fb24 : update_package.py