Dokiel
Paquet d’installation silencieuse pour Dokiel
25.0.6-1
Education
Education
Les paquets PREPROD sont des paquets construits via LUTI.
Ils restent généralement 5 jours en PREPROD, après quoi un deuxième scan VirusTotal est effectué pour vérifier que le status n'a pas changé.
Si le paquet réussit ce dernier contrôle, il est promu en PROD et publié sur le store.
- package: tis-dokiel
- name: Dokiel
- version: 25.0.6-1
- categories: education
- maintainer: Jordan ARNAUD
- licence: MPL 2.0 GPL 3.0 LGPL 3.0 CeCILL 2.1
- locale: en
- target_os: darwin
- architecture: all
- signature_date:
- size: 262.87 Mo
- homepage : https://doc.scenari.software/Dokiel/
package : tis-dokiel
version : 25.0.6-1
architecture : all
section : base
priority : optional
name : Dokiel
categories : education
maintainer : Jordan ARNAUD
description : Dokiel is dedicated to technical communication and software documentation
depends :
conflicts :
maturity : PREPROD
locale : en
target_os : darwin
min_wapt_version :
sources :
installed_size :
impacted_process :
description_fr : Dokiel est dédié au domaine de la communication technique et documentation logicielle
description_pl : Dokiel zajmuje się komunikacją techniczną i dokumentacją oprogramowania
description_de : Dokiel ist dem Bereich der technischen Kommunikation und Softwaredokumentation gewidmet
description_es : Dokiel se dedica a la comunicación técnica y la documentación de software
description_pt : A Dokiel dedica-se à comunicação técnica e à documentação de software
description_it : Dokiel si occupa di comunicazione tecnica e documentazione software
description_nl : Dokiel houdt zich bezig met technische communicatie en softwaredocumentatie
description_ru : Dokiel занимается технической коммуникацией и документированием программного обеспечения
audit_schedule :
editor :
keywords :
licence : MPL 2.0 GPL 3.0 LGPL 3.0 CeCILL 2.1
homepage : https://doc.scenari.software/Dokiel/
package_uuid : e744bc61-5ccd-48f5-bc41-f76c918fbeb7
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version : 10.0
max_os_version :
icon_sha256sum : 4bd0533e447e7e42233e44fe44531538991148c0697d019986f7ed54e16e3277
signer : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date : 2026-01-30T11:47:46.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature : K0qDbovMS4EBTSrZiqm8oV76wfFnaN2UTtl1NYVvvgWGbdeotiQNROJDpswnWGCAnSaqxXWIhqOi57EGFTGZnXOAltYIK7oH47sVxAUWPJ8fYVnCKbKzgWGeGviaSsHcXsuitvu3dRFLpUEJmWKd5VVLgz/WQVkU49asRi1jM4Vb0yJaVqvPHUCgNizVqsbgwbq+5Xs8OQlzdiR1iPUJmBJfWU5fn6UXsjSs8hba21b+Wdb/7lZv6n/bejuTVnpQpf0hrpgKIW+DsZBWLh42UpCSI9L8yTnihP2KkiJcaN1M0z+Sftay65urq5cIviW5BuX8XlNwokELpg053z7Cbw==
# -*- coding: utf-8 -*-
##################################################
# This file is part of WAPT Enterprise
# All right reserved, (c) Tranquil IT Systems 2023
# For more information please refer to
# https://wapt.tranquil.it/store/licences.html
##################################################
from setuphelpers import *
def install():
# Declaring local variables
bin_name = glob.glob("Dokiel*.dmg")[0]
def mount_dmg(dmg_path):
"""Mounts a dmg file.
Returns: The path to the mount point.
"""
try:
return run("yes | hdiutil mount '" + dmg_path + "'").split("\t")[-1].rstrip()
except subprocess.CalledProcessError as e:
raise Exception("Error in mount_dmg : {0}".format(e.output))
def install_dmg(dmg_path, key="", min_version="", get_version=None, force=False, killbefore=None, uninstallkeylist=None):
"""Installs a .dmg if it isn't already installed on the system.
Arguments:
dmg_path : the path to the dmg file
Returns:
True if it succeeded, False otherwise
"""
ret_val = True
dmg_name = os.path.basename(dmg_path)
dmg_mount_path = mount_dmg(dmg_path)
try:
dmg_file_assoc = {".pkg": install_pkg, ".mpkg": install_pkg, ".app": install_app}
files = [dmg_mount_path + "/" + fname for fname in os.listdir(dmg_mount_path)]
nb_files_handled = 0
for file in files:
fname, fextension = os.path.splitext(file)
if fextension in dmg_file_assoc:
dmg_file_assoc[fextension](
file,
key=key,
min_version=min_version,
get_version=get_version,
force=force,
uninstallkeylist=uninstallkeylist,
killbefore=killbefore,
)
nb_files_handled += 1
if nb_files_handled == 0:
error("Error : the dmg provided did not contain a package or an application, or none could be found.")
unmount_dmg(dmg_mount_path)
except Exception as e:
unmount_dmg(dmg_mount_path)
raise
# Uninstalling older version of the software that can remains
for to_uninstall in installed_softwares(name="Dokiel"):
if Version(to_uninstall["version"]) < Version(control.get_software_version()):
print(f"Removing: {to_uninstall['name']} ({to_uninstall['version']})")
remove_tree(to_uninstall['key'])
# Installing the software
install_dmg(bin_name,
key='/Applications/Dokiel 25.app',
min_version=control.get_software_version(),
get_version=get_version
)
def uninstall():
remove_tree("/Applications/Dokiel 25.app")
def get_version(key):
return key['version'].split('-')[0]
# -*- coding: utf-8 -*-
from setuphelpers import *
def update_package():
# Declaring local variables
result = False
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
lang_dict = {'fr':'fr-FR',
'en':'en-US'}
lang = control.locale
url_base = "https://download.scenari.software/Dokiel/?productInfos"
response = requests.get(url_base, proxies=proxies, allow_redirects=True)
response.raise_for_status()
# Supposons que la réponse soit un JSON contenant les informations du produit
product_info = response.json()
# Trouve la version la plus récente dans la liste 'hist'
version = product_info.get('v', [])
# Compose l'URL dynamique avec la dernière version
url_latest_version = f"https://download.scenari.software/Dokiel@{version}/?productInfos"
response = requests.get(url_latest_version, proxies=proxies, allow_redirects=True)
response.raise_for_status()
# Supposons que la réponse soit un JSON contenant les informations des fichiers
product_files_info = response.json()
# Rechercher le fichier .dmg pour Windows correspondant à la langue de control.locale
exe_file = None
if 'ch' in product_files_info:
for file in product_files_info['ch']:
if isinstance(file, dict) and file['n'].endswith('.dmg') and file['metas']['os'] == 'mac' and file['metas']['lang'] == lang_dict[control.locale]:
exe_file = file['metas']['path']
break
url_download = f"https://download.scenari.software{exe_file}"
filename = exe_file.split('/')[-1]
if not isfile(filename):
package_updated = True
wget(url_download, filename, proxies=proxies)
print("download:", filename)
for f in glob.glob("*.dmg"):
if f != filename:
remove_file(f)
#version = str(Version(get_version_from_binary(filename).split('-')[0],3))
control.set_software_version(version)
control.save_control_to_wapt()
304147f17d769e1361906111671dfe5b3a215f49d5ece4eb6ea23d076a056cda : Dokiel25.0.6_en-US_202601301019_mac_x64.dmg
01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
4874995ca4e3ae5c7eae362f372919fa42897468f94af2716ab2d6428eff415b : WAPT/control
4bd0533e447e7e42233e44fe44531538991148c0697d019986f7ed54e16e3277 : WAPT/icon.png
1d185e1e1745f12a680854417d76edf43a49535478a52895a40f06233f8c490c : luti.json
04158b609a7a488ea4ef1e5691506356a14776cf05ec8b00e0939e1135526095 : setup.py
768d1eb42d74eb53c2eb01ef03a51a602901b03ef079f6fbc387e70c2795b5c0 : update_package.py