Page 1 sur 1

[RESOLU] Paquet pour Postman (Windows/MacOS)

Posté : 30 oct. 2024 - 10:56
par bastien30
Bonjour,

Si ça peut servir, voici le code du paquet que j'utilise pour le logiciel Postman :

Pour Windows :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *
import time

uninstallkey = []

setup_path = r'C:\ProgramData\postman-installer'
bin_name = r'Postman-win64-Setup.exe'

def install():
    mkdirs(setup_path)
    filecopyto(bin_name, makepath(setup_path, bin_name))

def uninstall():
    for user_path in local_users_profiles():
        # Uninstall silently
        if isfile(makepath(user_path, r'\AppData\Local\Postman', r'Update.exe')):
            run_notfatal(r'"%s" --uninstall -s' % makepath(user_path, r'\AppData\Local\Postman', r'Update.exe'))
            time.sleep(2)
        # Remove local appdata dir
        if isdir(makepath(user_path, r'\AppData\Local\Postman')):
            remove_tree(makepath(user_path, r'\AppData\Local\Postman'))
    remove_tree(setup_path)
    
def session_setup():
    run(r'"%s" -s' % makepath(setup_path, bin_name))
    time.sleep(5)
    for i in range(30):
        if not isfile(makepath(user_local_appdata, r'\Postman\Update.exe')):
            time.sleep(5)
        else:
            break

def update_package():
    url = r'https://dl.pstmn.io/download/latest/win64'
    wget(url, bin_name)
    version_from_file = get_version_from_binary(bin_name)
    version_from_package = control.version.split('-')[0]

    if Version(version_from_file) > Version(version_from_package):
        print(r'Latest Postman version is %s' % version_from_file)
        # Changing version of the package
        control.version = '%s-%s' % (version_from_file, control.version.split('-', 1)[-1])
        control.save_control_to_wapt()
        print('Changing version to: %s in WAPT\\control' % control.version)
    else:
        print(r'Already up to date !')
Pour MacOS :

Code : Tout sélectionner

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

uninstallkey = []

zip_name = r'Postman-MacOS-arm64.zip'
app_name = r'Postman.app'

def install():
    run(r'unzip -qq %s %s/*' % (zip_name, app_name))
    install_app(app_name)

def uninstall():
    uninstall_app(app_name)

def update_package():
    import plistlib
    if isdir(app_name):
        remove_tree(app_name)
    url = r'https://dl.pstmn.io/download/latest/osx_arm64'
    wget(url, zip_name)
    unzip(zip_name, target=r'', filenames=r'%s/*' % app_name)
    version_from_package = control.version.split('-')[0]
    plist_file = plistlib.readPlist(r'%s/Contents/Info.plist' % app_name)
    version_from_plist = plist_file[r'CFBundleShortVersionString']
    remove_tree(app_name)

    if Version(version_from_plist) > Version(version_from_package):
        print(r'Latest Postman version is %s' % version_from_plist)
        # Changing version of the package
        control.version = '%s-%s' % (version_from_plist, control.version.split('-', 1)[-1])
        control.save_control_to_wapt()
        print('Changing version to: %s in WAPT\\control' % control.version)
    else:
        print(r'Already up to date !')

Re: [RESOLU] Paquet pour Postman (Windows/MacOS)

Posté : 06 nov. 2024 - 12:00
par dcardon
Bonjour Bastien,

merci pour le partage. Ca a l'air pas mal comme logiciel, je pense que l'on va l'utiliser nous aussi en interne :-)

Cordialement,

Denis

Re: [RESOLU] Paquet pour Postman (Windows/MacOS)

Posté : 08 nov. 2024 - 15:26
par fschelfaut
Bonjour Bastien,

Nous avons packagé Postman pour Windows et macOS. Il est actuellement disponible sur le dépôt PREPROD et sera accessible sur le store dans 5 jours.

Voici les liens vers les builds PREPROD :

- Windows x64
- MacOS Intel
- MacOS arm

Cordialement,
Flavien

Re: [RESOLU] Paquet pour Postman (Windows/MacOS)

Posté : 08 nov. 2024 - 16:43
par bastien30
Bonjour,

Top, je vais attendre que ça soit dans le dépôt stable pour check ça et probablement remplacer mes paquets par les vôtres :D

Merci.

Re: [RESOLU] Paquet pour Postman (Windows/MacOS)

Posté : 17 déc. 2024 - 12:27
par bastien30
fschelfaut a écrit : 08 nov. 2024 - 15:26 Bonjour Bastien,

Nous avons packagé Postman pour Windows et macOS. Il est actuellement disponible sur le dépôt PREPROD et sera accessible sur le store dans 5 jours.

Voici les liens vers les builds PREPROD :

- Windows x64
- MacOS Intel
- MacOS arm

Cordialement,
Flavien
Bonjour,

J'ai récupéré vos paquets à la place du mien car ils sont plus propres (installation dans program files).
Par contre je m'aperçois d'un petit problème après une mise à jour du paquet, sous Windows, le programme démarre puis se ferme quelques secondes plus tard.

Après recherches c'est dû au fichier AppData\Roaming\Postman\storage\settings.json dans lequel il y a un paramètre "lastKnownVersion" qui a la valeur de la version précédemment installée.
Si on met à jour la valeur avec la nouvelle version, le programme démarre normalement.

Serait-il possible d'ajouter cette modification dans le paquet svp ?
Il faudrait du coup le faire pour tous les utilisateurs je pense.

Merci d'avance.

Re: [RESOLU] Paquet pour Postman (Windows/MacOS)

Posté : 20 déc. 2024 - 10:05
par fschelfaut
Bonjour Bastien,

Merci pour ton retour ! Effectivement, je n’avais pas pris en compte ce fichier.
J’ai donc adapté le code afin que le settings.json soit automatiquement mise à jour (session-setup).

Tu peux retrouver le paquet en PREPROD ici

N’hésite pas à me confirmer si cela résout bien ton problème.

Flavien,

Re: [RESOLU] Paquet pour Postman (Windows/MacOS)

Posté : 20 déc. 2024 - 17:11
par bastien30
Super merci beaucoup :)

Re: [RESOLU] Paquet pour Postman (Windows/MacOS)

Posté : 26 déc. 2024 - 17:11
par bastien30
Hello,

Je viens de mettre à jour Postman, tout fonctionne bien :D

Merci !