Si ça peut servir, voici le code du paquet que j'utilise pour le logiciel Sourcetree (https://www.sourcetreeapp.com/) :
Pour Windows :
Code : Tout sélectionner
# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey = []
def install():
appver = control.version.split('-',1)[0]
bin_name = r'SourcetreeEnterpriseSetup_%s.msi' % appver
parameters = {'ACCEPTEULA':'1'}
install_msi_if_needed(bin_name, min_version=appver, killbefore=control.impacted_process, properties=parameters)
def update_package():
appver = control.version.split('-',1)[0]
url = r'https://www.sourcetreeapp.com/download-archives'
print(r'Checking latest version...')
for release in bs_find_all(url, "a"):
if "Download free" in release:
continue
if release["href"].endswith(".msi"):
url_dl = (release["href"])
break
latest_version = url_dl.split("/")[-1].split(".msi")[0].split("_")[-1]
if Version(latest_version) > Version(appver):
bin_name = url_dl.split("/")[-1]
print(r'Latest version is: %s' % latest_version)
print(r'Downloading latest binary...')
wget(url_dl, bin_name)
# Changing version of the package
control.version = '%s-%s'%(latest_version,(control.version.split('-')[-1]))
control.save_control_to_wapt()
print('Changing version to: %s in WAPT\\control' % control.version)
else:
print(r'Already up to date !')
# Deleting outdated binaries
remove_outdated_binaries(latest_version)
Code : Tout sélectionner
# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey = []
zip_name_begin = r'Sourcetree'
app_name = r'Sourcetree.app'
def install():
zip_name = glob.glob('%s*.zip' % zip_name_begin)[0]
run(r'unzip -qq %s %s/*' % (zip_name, app_name))
install_app(app_name)
def uninstall():
uninstall_app(app_name)
def update_package():
appver = control.version.split('-',1)[0]
url = r'https://www.sourcetreeapp.com/download-archives'
print(r'Checking latest version...')
for release in bs_find_all(url, "a"):
if "Download free" in release:
continue
if release["href"].endswith(".zip"):
url_dl = (release["href"])
break
latest_version = url_dl.split("/")[-1].split(".zip")[0].split("_")[-2]
if Version(latest_version) > Version(appver):
bin_name = url_dl.split("/")[-1]
# Remove older version ZIP file
try:
old_zip_name = glob.glob('%s*.zip' % zip_name_begin)[0]
if isfile(old_zip_name):
remove_file(old_zip_name)
except:
pass
print(r'Latest version is: %s' % latest_version)
print(r'Downloading latest binary...')
wget(url_dl, bin_name)
# Changing version of the package
control.version = '%s-%s'%(latest_version,(control.version.split('-')[-1]))
control.save_control_to_wapt()
print('Changing version to: %s in WAPT\\control' % control.version)
else:
print(r'Already up to date !')

Merci d'avance.