J'ai essayé de créer un paquet pour l'installation du programme Insomnia (https://insomnia.rest/download), celui ci peut s'installer via une application portable ou bien avec une application s'installant dans appdata ( je n'ai pas réussi à réaliser l'installlation avec cette méthode)
J'ai essayé de me baser sur le paquet tis-bitwarden-portable
Ci dessous le setup.py
Code : Tout sélectionner
# -*- coding: utf-8 -*-
from setuphelpers import *
app_bin = "Insomnia.Core-2023.5.8-portable.exe"
app_dir = makepath(programfiles32, "Insomnia")
app_bin_path = makepath(app_dir, app_bin)
processes_to_kill = ["Insomnia"]
def install():
# Initializing variables
package_version = control.version.split("-", 1)[0]
bin_name = bin_name = glob.glob("Insomnia.Core-*.exe")[0]
# Installing the package
print("Installing: %s" % bin_name)
if get_version_from_binary(app_bin_path) != package_version:
killalltasks(processes_to_kill)
if isdir(app_dir):
remove_tree(app_dir)
mkdirs(app_dir)
print("Copying %s to %s " % (bin_name, app_bin_path))
filecopyto(bin_name, app_bin_path)
# remove_programs_menu_shortcut("Insomnia")
# Adding this package to the "list-registry"
register_windows_uninstall(control) # control is a PackageEntry object corresponding to this package
else:
print("%s portable version is already installed in the correct version" % "Insomnia")
def session_setup():
# Initializing variables
user_app_dir = makepath(application_data, "Insomnia")
user_app_bin_path = makepath(user_app_dir, app_bin)
# Installing the package in user env
print("Installing: %s in user env" % "Insomnia")
if get_version_from_binary(user_app_bin_path) != installed_softwares("Insomnia")[0]["version"]:
killalltasks(processes_to_kill)
if isdir(user_app_dir):
remove_tree(user_app_dir)
mkdirs(user_app_dir)
print("Copying %s to %s " % (app_bin_path, user_app_bin_path))
filecopyto(app_bin_path, user_app_bin_path)
create_user_programs_menu_shortcut("Insomnia", user_app_bin_path)
else:
print("%s portable version in user env is already installed in the correct version" % "Insomnia")
def uninstall():
# Uninstalling the package
killalltasks(processes_to_kill)
if isdir(app_dir):
remove_tree(app_dir)
unregister_uninstall("Insomnia")
Et j'ai limpression que le session setup ne se lance pas après l'installation de l'application, je dois forcer le session setup avec wapt-get session-setup -f ALL
Pouvez vous m'aider à améliorer mon paquet ?
Merci à tous
