tis-kitty-portable icon

Kitty

Paquet d’installation silencieuse pour Kitty

0.76.1.13-1

  • package: tis-kitty-portable
  • name: Kitty
  • version: 0.76.1.13-1
  • maintainer: Amel FRADJ
  • licence: MIT
  • target_os: windows
  • architecture: all
  • signature_date:
  • size: 5.99 Mo
  • homepage : http://www.9bis.net/kitty/

package           : tis-kitty-portable
version           : 0.76.1.13-1
architecture      : all
section           : base
priority          : optional
name              : Kitty
categories        : 
maintainer        : Amel FRADJ
description       : KiTTY is a fork of PuTTY (from version 0.62 beta), the most popular Telnet and SSH client for Windows and Unix. It runs on Windows and boasts an impressive collection of one of the most sought-after features missing from PuTTY
depends           : 
conflicts         : 
maturity          : PROD
locale            : 
target_os         : windows
min_wapt_version  : 
sources           : https://github.com/cyd01/KiTTY/releases
installed_size    : 
impacted_process  : 
description_fr    : KiTTY est un fork de PuTTY (à partir de la version 0.62 bêta), le client Telnet et SSH le plus populaire pour Windows et Unix. Il fonctionne sous Windows et possède une collection impressionnante de l'une des fonctionnalités les plus demandées qui manquent dans PuTTY
description_pl    : KiTTY to fork PuTTY (od wersji 0.62 beta), najpopularniejszego klienta Telnet i SSH dla systemów Windows i Unix. Działa w systemie Windows i ma imponującą kolekcję jednej z najbardziej pożądanych funkcji, których brakuje w PuTTY
description_de    : KiTTY ist ein Fork von PuTTY (ab Version 0.62 Beta), dem beliebtesten Telnet- und SSH-Client für Windows und Unix. Es läuft unter Windows und verfügt über eine beeindruckende Sammlung einer der meistgefragten Funktionen, die in PuTTY fehlen
description_es    : KiTTY es un fork de PuTTY (desde la versión 0.62 beta), el cliente Telnet y SSH más popular para Windows y Unix. Se ejecuta en Windows y tiene una impresionante colección de una de las características más solicitadas que faltan en PuTTY
description_pt    : KiTTY é uma bifurcação do PuTTY (a partir da versão 0.62 beta), o cliente Telnet e SSH mais popular para Windows e Unix. Ele roda no Windows e tem uma coleção impressionante de um dos recursos mais solicitados que faltam no PuTTY
description_it    : KiTTY è un fork di PuTTY (dalla versione 0.62 beta), il più popolare client Telnet e SSH per Windows e Unix. Funziona su Windows e ha un'impressionante raccolta di una delle caratteristiche più richieste che mancano a PuTTY
description_nl    : KiTTY is een fork van PuTTY (vanaf versie 0.62 beta), de populairste Telnet en SSH client voor Windows en Unix. Het draait op Windows en heeft een indrukwekkende verzameling van een van de meest gevraagde functies die in PuTTY ontbreken
description_ru    : KiTTY - это форк PuTTY (начиная с версии 0.62 beta), самого популярного Telnet и SSH клиента для Windows и Unix. Он работает под Windows и обладает впечатляющей коллекцией одних из самых востребованных функций, отсутствующих в PuTTY
audit_schedule    : 
editor            : 
keywords          : 
licence           : MIT
homepage          : http://www.9bis.net/kitty/
package_uuid      : 66045b9f-7195-4253-9d33-82d382101f83
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 
max_os_version    : 
icon_sha256sum    : 84596246c785bf3ee8f13cacf86f4c6731b79ef44d6703cec8e67ea8aed89120
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature         : UL/lI84O1yOS4NbxPVdf1g84LB8D4FM+ruyEpkv2bmwPbdkczuRvwwEQdKvbPY/XavXKiRBxoeDvlS6tWWttBon1B3fijUIhdi0aOT0Q/9lgrUy3H4cVf7sx6BsfKm5o0uu0lKFvBhANmJJIZf52EwPPSlZ8e8YvLa0KHqXpFfXMC4hkSnOQ/1PKeKEbzCgtNtqzwT22xYie+8EkQtVygOmN2hvIVtghkhRkkZ3Uj8zNVDcoilhRwOqYL0vZCF7wEXeuSd2l45KgnTfX+iFM9PshhIpaifsY/lGENxspn6rjM0srvGr5ONEqY4ADTY2LWZZFIl5EbxTupIPiy+6hNw==
signature_date    : 2024-06-17T16:02:06.865922
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

# -*- coding: utf-8 -*-
from setuphelpers import *
import glob
import os

app_name = "Kitty"
app_dir = makepath(programfiles, app_name)
app_path = makepath(app_dir, "kitty_portable.exe")
audit_version = False

def get_installed_version(app_path):
    return get_file_properties(app_path).get("FileVersion", "")

def install():
    # Find the zip file
    zip_name = glob.glob(f"{app_name}*.zip")[0]
    unzip_dest = makepath(".", "temp_dezip")
    
    # Remove the temporary directory if it already exists
    if isdir(unzip_dest):
        remove_tree(unzip_dest)
    
    # Extract the zip file
    print(f"Extracting: {zip_name} to: {unzip_dest}")
    unzip(zip_name, unzip_dest)
    
    # List the contents of the temporary directory
    extracted_files = os.listdir(unzip_dest)
    print(f"Contents of the temporary directory after extraction: {extracted_files}")
    
    # Find the name of the extracted directory or the extracted files
    if not extracted_files:
        raise Exception("No extracted files or directories found")
    
    # If the first extracted item is a directory, use that directory, otherwise use unzip_dest
    first_extracted_item = makepath(unzip_dest, extracted_files[0])
    if isdir(first_extracted_item):
        unzipped_dir = first_extracted_item
    else:
        unzipped_dir = unzip_dest
    
    # Verify that the extracted directory exists
    if not isdir(unzipped_dir):
        raise Exception(f"Invalid source directory for copytree2: {unzipped_dir}")
    
    # Remove the old application directory if it exists
    if isdir(app_dir):
        remove_tree(app_dir)
    
    # Move the new extracted directory or files to the final installation directory
    copytree2(unzipped_dir, app_dir, onreplace=default_overwrite)
    
    # Remove the temporary directory
    remove_tree(unzip_dest)
    
    # Create custom shortcuts
    create_programs_menu_shortcut(app_name, target=app_path)
    
    # Get the desktop path
    desktop_path = os.path.expanduser("~\\Desktop")
    desktop_shortcut_path = makepath(desktop_path, f"{app_name}.lnk")
    
    # Create the desktop shortcut
    print(f"Creating desktop shortcut: {desktop_shortcut_path}")
    create_shortcut(desktop_shortcut_path, target=app_path)
    
    print(f"Desktop shortcut created successfully: {desktop_shortcut_path}")

def create_shortcut(shortcut_path, target):
    try:
        create_desktop_shortcut(shortcut_path, target=target)
        return True
    except Exception as e:
        print(f"Error creating shortcut: {e}")
        return False

def audit():
    # Auditing software
    audit_status = "OK"
    installed_version = get_installed_version(app_path)
    if Version(installed_version) < Version(control.get_software_version()) and audit_version:
        print("%s is installed in version (%s) instead of (%s)" % (app_name, installed_version, control.get_software_version()))
        audit_status = "WARNING"
    elif isdir(app_dir) and not dir_is_empty(app_dir):
        print("%s (%s) is installed" % (app_name, installed_version))
        audit_status = "OK"
    else:
        print("%s is not installed" % app_name)
        audit_status = "ERROR"
    return audit_status

def uninstall():
    # Uninstalling software
    killalltasks(ensure_list(control.impacted_process))
    if isdir(app_dir):
        remove_tree(app_dir)

    # Removing shortcuts
    desktop_path = os.path.expanduser("~\\Desktop")
    desktop_shortcut_path = makepath(desktop_path, f"{app_name}.lnk")
    
    if os.path.exists(desktop_shortcut_path):
        print(f"Removing desktop shortcut: {desktop_shortcut_path}")
        os.remove(desktop_shortcut_path)
    
    remove_programs_menu_shortcut(app_name)

    # Additional check
    if os.path.exists(desktop_shortcut_path):
        print(f"Failed to remove desktop shortcut: {desktop_shortcut_path}")
    else:
        print(f"Desktop shortcut removed successfully: {desktop_shortcut_path}")

from setuphelpers import *
import requests
import re
import json

def update_package():
    # Déclarer les variables locales
    result = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    git_repo = "cyd01/KiTTY"
   
    url_api = f"https://api.github.com/repos/{git_repo}/releases/latest"
    
    # Getting latest version information from official sources
    print("API used is: %s" % url_api)
    json_load = json.loads(wgets(url_api, proxies=proxies))

    for download in json_load["assets"]:
        if download["browser_download_url"].endswith('.zip') :
            url_dl = download["browser_download_url"]
            version = json_load["tag_name"].replace("v","")
            filename = download["name"]
            break

    if not isfile(filename):
        package_updated = True
        wget(url_dl,filename,proxies=proxies)

    #nettoyer les fichiers temporaires
    for f in glob.glob('*.zip'):
        if f != filename:
            remove_file(f)
    
    control.set_software_version(version)
    control.save_control_to_wapt()

768d93e616c0dd8918c08d317da3857d37a5328daff5c7115b40700913773965 : kitty-bin-0.76.1.13.zip
09868263c219f5a4f073f0cffbe3d2fba889ca75577eefb40af5ec04d7aabf30 : setup.py
01286514939fb4c6b4cd568f917890f7f75d3b97106440fa8063ba6d5a34e334 : update_package.py
84596246c785bf3ee8f13cacf86f4c6731b79ef44d6703cec8e67ea8aed89120 : WAPT/icon.png
a5a97261381e1d0ad46ee15916abec9c2631d0201f5cc50ceb0197a165a0bbbf : WAPT/certificate.crt
3ce02cfdc47a7897e22dda9f4861d81cc7b9efc36dc6a862ea24c5d23dc9f039 : luti.json
811154e0b21b9af4e9bfa25b6dc0533fac0af3b3a0d3da20731645a0e4d2bc23 : WAPT/control