Automatiser la mise à jour d’un paquet logiciel¶
Note
Cette partie de la documentation est déconseillée aux utilisateurs qui débutent avec WAPT.
Pour quoi faire ?¶
Les fonctions update_package sont très pratiques, elles permettent de gagner du temps lorsque qu’il faut mettre à jour un paquet avec la version la plus récente d’un logiciel.
Fonctionnement¶
la fonction update_package paquet ira :
récupérer la dernière version du logiciel en ligne ;
télécharger la dernière version du binaire ;
supprimer les anciennes version des binaires ;
mettre à jour la version dans le fichier
control
;
Si votre fonction install se base sur la version du fichier control
pour l’installation, alors vous n’avez pas besoin de modifier votre setup.py
.
Il vous reste maintenant à tester l’installation avant de lancer un build-upload.
Exemple¶
Voici l”update_package de firefox-esr comme exemple :
def update_package():
""" You can do a CTRL F9 in pyscripter to update the package """
import re,requests,urlparse,glob
url = requests.head('https://download.mozilla.org/?product=firefox-esr-latest&os=win&lang=fr',proxies={}).headers['Location']
filename = urlparse.unquote(url.rsplit('/',1)[1])
if not isfile(filename):
print('Downloading %s from %s'%(filename,url))
wget(url,filename)
exes = glob.glob('*.exe')
for fn in exes:
if fn != filename:
remove_file(fn)
# updates control version from filename, increment package version.
control = PackageEntry().load_control_from_wapt ('.')
control.version = '%s-0'%(re.findall('Firefox Setup (.*)esr\.exe',filename)[0])
control.save_control_to_wapt('.')
if __name__ == '__main__':
update_package()
Vous pouvez lancer l’update_package* en appuyant sur la touche F9 dans PyScripter.
Vous trouverez de nombreux exemples d”update_package qui vous inspireront dans les paquets du store de Tranquil IT.