J'ai fait un paquet pour le logiciel Wondershare EdrawMax, avec update_package() fonctionnel.
J'ai vu que vous aviez un paquet pour EdrawMind mais visiblement vous récupérez l'installeur depuis votre dépôt (soucis de licence ?).
setup.py :
Code : Tout sélectionner
# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *
from os import rename
def install():
appver = control.get_software_version()
appname = control.name
install_exe_if_needed(r'edrawmax_%s.exe' % appver, silentflags=r'/VERYSILENT /NORESTART /ACCEPTEULA', min_version=appver, name=appname)
remove_desktop_shortcut(appname)
def session_setup():
appname = control.name
remove_user_desktop_shortcut(appname)
def update_package():
appver = control.get_software_version()
url = control.sources
for col in bs_find_all(url, "div", "class", "m-3"):
if "EdrawMax for Windows" in col.text:
for release in bs_find_all(col, "div", "class", "font-size-small"):
if "what's new" in release.text:
latest_version = release.text.strip().split("(")[0]
break
for release_link in bs_find_all(col, "div", "class"):
if "Have trouble" in release_link.text:
latest_release_link = bs_find(release_link, "a", "href")
if latest_release_link["href"].endswith(".exe"):
if r"64bit" in latest_release_link["href"]:
latest_url = latest_release_link["href"]
break
if latest_version and latest_url:
break
if not latest_version:
error(r'Error fetching latest version from website !')
elif not latest_url:
error(r'Error fetching latest download link from website !')
else:
print(r'Latest version : %s' % latest_version)
print(r'Latest url : %s' % latest_url)
if Version(latest_version, 3) > Version(appver, 3):
installer = r'edrawmax_latest.exe'
installer_version = r'edrawmax_%s.exe'
wget(latest_url, installer)
# Get full version from binary
bin_version = get_version_from_binary(installer)
if Version(bin_version, 3) != Version(latest_version, 3):
error(r'Error : binary version and website version are not the same !')
else:
# Renaming installer with full version
os.rename(installer, installer_version % bin_version)
# Changing version of the package
control.version = '%s-%s'%(bin_version, control.version.split('-')[-1])
control.save_control_to_wapt()
print('Changing version to: %s in WAPT\\control' % control.version)
remove_outdated_binaries(bin_version)
else:
print("Already up to date")
Code : Tout sélectionner
package : xxx-edrawmax
version : 14.1.0.1212-5
architecture : x64
section : base
priority : optional
name : Wondershare EdrawMax
categories : Utilities
maintainer : XXXX
description : Edraw Max est un logiciel de diagramme d'affaires et technique en 2D qui aide à créer des diagrammes de flux, des organigrammes, des cartes mentales, des diagrammes de réseau, des plans d'étage, des diagrammes de flux de travail, des graphiques d'affaires et des diagrammes d'ingénierie
depends :
conflicts :
maturity : PROD
locale : all
target_os : windows
min_wapt_version :
sources : https://www.edrawsoft.com/download-edrawmax.html
installed_size :
impacted_process : EdrawMax,EdrawMaxTray
description_fr :
description_pl :
description_de :
description_es :
description_pt :
description_it :
description_nl :
description_ru :
audit_schedule :
editor : EdrawSoft Co.,Ltd.
keywords :
licence : proprietary_restricted
homepage : https://edrawmax.wondershare.com/
valid_from :
valid_until :
forced_install_on :
changelog : https://www.edrawsoft.com/whats-new/edrawmax.html
min_os_version :
max_os_version :