Página 1 de 1

[RESUELTO] Paquete para Postman (Windows/MacOS)

Publicado: 30 de octubre de 2024 - 10:56 a. m.
por bastien30
Buen día,

Si es de alguna utilidad, aquí está el código del paquete que uso para el software Postman:

Para Windows:

Código: Seleccionar todo

# -*- 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 !')
Para macOS:

Código: Seleccionar todo

# -*- 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: [RESUELTO] Paquete para Postman (Windows/MacOS)

Publicado: 6 de noviembre de 2024 - 12:00 p. m.
por dcardon
Hola Bastien,

gracias por compartirlo. Parece un programa bastante bueno; creo que también lo usaremos internamente. :-)

Saludos,

Denis

Re: [RESUELTO] Paquete para Postman (Windows/MacOS)

Publicado: 8 de noviembre de 2024 - 15:26
por fschelfaut
Hola Bastien,

hemos empaquetado Postman para Windows y macOS. Actualmente está disponible en el repositorio PREPROD y estará disponible en la tienda en 5 días.

Aquí tienes los enlaces a las versiones PREPROD:

- Windows x64
- macOS Intel
- macOS ARM

Saludos cordiales,
Flavien

Re: [RESUELTO] Paquete para Postman (Windows/MacOS)

Publicado: 8 de noviembre de 2024 - 16:43
por bastien30
Hola,

genial. Esperaré a que esté en el repositorio estable para revisarlo y probablemente reemplazaré mis paquetes con los tuyos :D

. Gracias.

Re: [RESUELTO] Paquete para Postman (Windows/MacOS)

Publicado: 17 de diciembre de 2024 - 12:27
por bastien30
fschelfaut escribió: 8 de noviembre de 2024 - 15:26 Hola Bastien,

Hemos empaquetado Postman para Windows y macOS. Actualmente está disponible en el repositorio PREPROD y estará disponible en la tienda en 5 días.

Aquí están los enlaces a las compilaciones PREPROD:

- Windows x64
- macOS Intel
- macOS arm

Saludos cordiales,
Flavien
Buen día,

Descargué sus paquetes en lugar de los míos porque son más limpios (instalación en archivos de programa).
Sin embargo, he notado un pequeño problema después de una actualización de paquete: en Windows, el programa se inicia y luego se cierra unos segundos después.

Después de la investigación, se encontró que el problema se debía al archivo AppData\Roaming\Postman\storage\settings.json, en el que hay un parámetro "lastKnownVersion" que tiene el valor de la versión previamente instalada.
Si actualizamos el valor con la nueva versión el programa inicia normalmente.

¿Sería posible agregar esta modificación al paquete, por favor?
Por tanto, creo que sería necesario hacer esto para todos los usuarios.

Gracias de antemano.

Re: [RESUELTO] Paquete para Postman (Windows/MacOS)

Publicado: 20 de diciembre de 2024 - 10:05 a. m.
por fschelfaut
Hola Bastien, ¡

Gracias por tus comentarios! Efectivamente, no había considerado ese archivo.
Por lo tanto, he adaptado el código para que settings.json se actualice automáticamente (session-setup).

Puedes encontrar el paquete en PREPROD aquí.

Por favor, avísame si esto resuelve tu problema.

Flavien,

Re: [RESUELTO] Paquete para Postman (Windows/MacOS)

Publicado: 20 de diciembre de 2024 - 17:11
por bastien30
¡Muchas gracias! :)

Re: [RESUELTO] Paquete para Postman (Windows/MacOS)

Publicado: 26 de diciembre de 2024 - 17:11
por bastien30
Hola,

acabo de actualizar Postman, todo funciona bien :D

. ¡Gracias!