Voici mon paquet pour le logiciel Figma sous MacOS.
L'update-package est quasiment identique à la version Windows, et c'est compatible x64/arm :
Code : Tout sélectionner
# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *
from pathlib import Path
import glob
def install():
    # Initializing variables
    package_version = control.version.split("-")[0]
    # Installing the package
    bin_name= glob.glob('%s*.pkg' % r'Figma')[0]
    install_pkg(bin_name, min_version=package_version, killbefore=r'Figma')
def uninstall():
    # Remove all Figma pkg
    killalltasks(r'Figma')
    all_figma_pkgs = run(r'pkgutil --pkgs | grep -i com.figma').rstrip().split('\n')
    for pkg in all_figma_pkgs:
        uninstall_pkg(pkg)
    
    # Remove app leftovers after pkg was removed
    uninstall_app(r'Figma.app')
def update_package():
    package_updated = False
    proxies = get_proxies_from_wapt_console()
    if not proxies:
        proxies = get_proxies()
    # Récupérer les données depuis l'URL et décoder en tant que chaîne de caractères
    sitewebdata = wgets('https://desktop.figma.com/mac-universal/releases.xml').decode('utf-8')
    # Recherche des liens .pkg dans les données
    for u in sitewebdata.split('.pkg'):
        lnk = u.split('https://')[-1]
        fullnk = 'https://' + lnk + '.pkg'
        break
    url_download = fullnk.split('/')[-1]
    latest_bin = url_download.split("/")[-1]
    
    # remove old pkg
    for f in glob.glob("*.pkg"):
        if f != latest_bin:
            remove_file(f)
    
    if not isfile(latest_bin):
        package_updated = True
        wget(fullnk, latest_bin, proxies=proxies)
    else:
        print(r'Already up to date !')
    
    if package_updated:
        last_version = Path(latest_bin).stem.split("-")[-1]
        control.set_software_version(last_version)
        control.save_control_to_wapt()
    # Validating update-package-sources
    return package_updatedMerci d'avance.
