J'ai fait un paquet pour le logiciel Eraser sous Windows, avec update_package() fonctionnel.
setup.py :
Code : Tout sélectionner
# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *
def install():
appver = control.version.split('-',1)[0]
install_msi_if_needed(r'Eraser_%s.msi' % appver)
remove_desktop_shortcut("Eraser")
def update_package():
url = control.sources
appver = control.version.split('-',1)[0]
bin_zip = "Eraser.exe"
bin_msi = r'Eraser (x64).msi'
found = False
if isfile(bin_zip):
remove_file(bin_zip)
for releases in bs_find_all(url, "a", "href"):
if not "Eraser%20" in releases["href"]:
continue
if releases["href"].endswith(r'.exe/download'):
if any(s in releases["href"] for s in ("Alpha", "Beta", "Runtime", "runtime")):
continue
else:
version = releases["href"].split("%20")[2].split(".exe")[0]
if Version(version) > Version(appver):
url_dl = releases["href"]
found = True
break
if found:
print(r'Latest version is %s' % version)
wget(url_dl, bin_zip)
bin_version = get_version_from_binary(bin_zip)
if bin_version != version:
error("Installer version is not the same as specified on download page !")
else:
unzip_with_7zip(filename=bin_zip, target=".", filenames=bin_msi, extract_with_full_paths=False)
os.rename(bin_msi, r'Eraser_%s.msi' % version)
remove_file(bin_zip)
# Changing version of the package
control.version = '%s-%s'%(version, control.version.split('-')[-1])
control.save_control_to_wapt()
else:
print("Already up to date")
remove_outdated_binaries(version)
Code : Tout sélectionner
package : xxx-eraser
version : 6.2.0.2996-2
architecture : x64
section : base
priority : optional
name : Eraser
categories : Security,Utilities
maintainer : XXXX
description : Eraser permet de supprimer de façon sécurisé des fichiers ou des dossiers
depends :
conflicts :
maturity :
locale : all
target_os : windows
min_wapt_version :
sources : https://eraser.heidi.ie/download/
installed_size :
impacted_process : Eraser
description_fr :
description_pl :
description_de :
description_es :
description_pt :
description_it :
description_nl :
description_ru :
audit_schedule :
editor : The Eraser Project
keywords :
licence : GNU GPL
homepage : https://eraser.heidi.ie/
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version :
max_os_version :
