"DSN-CTL L'outil de contrôle DSN-CTL est proposé en utilisation libre aux petits déclarants, mais soumis à licence spécifique et redevance annuelle d'utilisation dans les autres cas (entreprises de plus de 20 salariés ou multi-établissements, tiers-déclarants, éditeurs de logiciel ...)."
https://dsn-ctl.fr/
Code : Tout sélectionner
# -*- coding: utf-8 -*-
from setuphelpers import *
# Détection du nom de l'exécutable à la racine du paquet
binary_name = glob.glob("DSN*.EXE")[0]
# Détection du nom de l'application en supprimant le .exe à la fin de la chaine, exemple 'DSN-CTL-V24R01'
app_name = binary_name.split(".exe")[0]
parts = app_name.split("-")
soft_name = "-".join(parts[:2]) # utile pour rechercher les versions installées
# répertoire d'installation
app_dir = makepath(programfiles32, app_name)
# répertoire de l'exécutable
app_dir_binaries = app_dir
def install():
# Uninstalling existing versions
print(r'Suppression de toutes les versions installées de %s' %soft_name)
for soft in installed_softwares(soft_name):
old_version = soft['key']
print(r'Désinstallation de %s' %old_version)
run(WAPT.uninstall_cmd(soft['key']))
# Installing the software
print(r"Installation de %s" %binary_name)
install_exe_if_needed(binary_name,
silentflags='/VERYSILENT /SUPPRESSMSGBOXES /NORESTART',
key='%s_is1' %app_name,
min_version=control.get_software_version()
)
# Create shortcut on public desktop
create_desktop_shortcut(app_name, target=makepath(app_dir_binaries,binary_name))
def uninstall():
print(r'Suppression des raccourcis %s sur le bureau Public' %app_name)
for filename in glob.glob(makepath(r"%s\%s*" %(common_desktop(),soft_name))):
print(r'Suppression de %s' %filename)
os.remove(filename)
def audit():
if isfile(makepath(app_dir_binaries,binary_name)):
return("OK")
else:
return("Erreur : %s est introuvable !" %binary_name)
def update_package():
""" You can do a CTRL F9 in pyscripter to update the package """
import re,requests,glob
url = 'https://dsn-ctl.fr/%s.exe' %app_name
filename = '%s.exe' %app_name
if not isfile(filename):
print(r'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 ('.')
version_dsn = get_version_from_binary(filename)
# Changing version of the package
control.version = "%s-%s" % (version_dsn, int(control.version.split("-")[-1]) + 1)
control.save_control_to_wapt()
print("Changing package version to: %s in WAPT\\control" % control.version)
if __name__ == '__main__':
update_package()