Seite 1 von 1

Pakete für Spark

Veröffentlicht: 8. Februar 2021 - 11:39 Uhr
von Fred-Gie
Hallo, ich bin neu bei WAPT und Python.

Ich nutze in meinem Unternehmen den Instant-Messaging-Client Spark und möchte Spark mithilfe von WAPT bereitstellen.
Ich habe das Paket für Version 2.9.4 erstellt, Installation und Deinstallation funktionieren einwandfrei.
Ich möchte außerdem eine Konfigurationsdatei in den Ordner "user_appdata" kopieren.
Und genau da brauche ich Unterstützung.

Ich möchte überprüfen, ob der Ordner „Spark“ im Roaming-Ordner des Benutzers existiert.
Falls ja, kopiere ich meine Datei hinein.
Falls nicht, erstelle ich den Ordner „Spark“ und kopiere meine Datei hinein.

Hier sind die Codezeilen, die ich erstellt habe, aber es funktioniert nicht. Irgendetwas fehlt, aber ich kann nicht erkennen, was.

Code: Alle auswählen

def session_setup():
    user_config_dir = makepath(user_appdata(),'Spark')
    Spark_Config = 'spark.properties'

     if not isdir(user_config_dir):
        mkdirs(user_config_dir)
        filecopyto (Spark_Config,user_config_dir)
    if isdir(user_config_dir):
        filecopyto (Spark_Config,user_config_dir)
Vielen Dank im Voraus für Ihre Hilfe.

WAPT-Serverversion: 1.8.2
WAPT-Agent-Version: 1.8.2.7334
WAPT-Setup-Version: 1.8.2.7334
WAPT Deploy Version: 1.8.2.7334

Betreff: Pakete für Spark

Veröffentlicht: 11. Februar 2021 – 13:45 Uhr
von dcardon
Der Python-Code ist gut, aber der Ausführungskontext muss berücksichtigt werden. Wenn `session_setup()` ausgeführt wird, ist das Paket bereits installiert, und die Dateien sind im Ausführungskontext nicht mehr verfügbar. Sie müssen an einen Ort auf dem Rechner kopiert werden (z. B. in das Spark-Verzeichnis in „Programme“ oder in das persistente WAPT-Verzeichnis), um sie bei der Ausführung von `session_setup()` abrufen zu können.

Betreff: Pakete für Spark

Veröffentlicht: 12. Februar 2021 – 14:52 Uhr
von Fred-Gie
Hallo und vielen Dank für Ihre Antwort.
Ich habe mein Skript angepasst und jetzt funktioniert es, wenn ich "session-setup" von pyscripter ausführe, aber nicht mit WAPTConsole.
Ich habe den Eindruck, dass der Abschnitt "session_setup" während der Installation nicht ausgeführt wird.

Hier ist das Skript, falls ihr Ideen habt.

Code: Alle auswählen

from setuphelpers import *

uninstallkey = []

def install():
    def vers_spark(key):
        return key['name'].replace('Spark','')
    install_exe_if_needed("spark_2_9_4-with-jre.exe",silentflags='-q',key='3057-7228-2063-7466',min_version='2.9.4',killbefore=['spark.exe'],get_version=vers_spark)
    uninstallkey.remove('3057-7228-2063-7466')

    #Copie du fichier config dans dossier d'install:
    Cpy_conf = makepath(programfiles32,'Spark')

    isdir(Cpy_conf)
    filecopyto ('spark.properties',Cpy_conf)
    copytree2 ('PHX-32.adiumemoticonset',makepath(programfiles32,'Spark','PHX-32.adiumemoticonset'))

def uninstall():
    run('"%s" -q' % makepath(programfiles32,'Spark','uninstall.exe'))


def session_setup():

    user_config_dir = makepath(user_appdata(),'Spark')
    Spark_Config = 'spark.properties'
    #Creation répertoire dans roaming et copie du fichiers config.
    if not isdir(user_config_dir):
        mkdirs(user_config_dir)
        filecopyto (Spark_Config,user_config_dir)
        copytree2 ('PHX-32.adiumemoticonset',makepath(user_appdata(),'Spark','xtra','emoticons','PHX-32.adiumemoticonset'))
    if isdir(user_config_dir):
        filecopyto (Spark_Config,user_config_dir)
        copytree2 ('PHX-32.adiumemoticonset',makepath(user_appdata(),'Spark','xtra','emoticons','PHX-32.adiumemoticonset'))

DANKE

Betreff: Pakete für Spark

Veröffentlicht: 17. Februar 2021 - 11:32 Uhr
von Fred-Gie
Hallo,

ich habe Probleme mit der Ausführung des Abschnitts `def session_setup()`.
Beim Testen in PyScripter funktioniert er, aber während der Installation passiert nichts.
Code von `session_setup`in den `install` , funktioniert es.
Benötigt man ein Argument, um die Ausführung dieses Abschnitts zu erzwingen?

Vielen Dank im Voraus für Ihre Hilfe.

WAPT Server Debian Version: 1.8.2,
WAPT Agent Version: 1.8.2.7334,
WAPT Setup Version: 1.8.2.7334,
WAPT Deploy Version: 1.8.2.7334

Betreff: Pakete für Spark

Veröffentlicht: 18. Februar 2021 - 10:49 Uhr
von dcardon
Die Funktion session_setup() wird mit dem Befehl wapt-get.exe session_setup ALL in der Benutzersitzung aufgerufen.
Bei einer Standardinstallation des WAPT-Agenten wird der Befehl wapt-get.exe session_setup ALL standardmäßig ausgeführt.

Betreff: Pakete für Spark

Veröffentlicht: 19. Februar 2021 - 12:39 Uhr
von Fred-Gie
Hallo und vielen Dank für Ihre Antwort.

Ich habe das Skript mehrmals umgeschrieben, aber leider funktioniert nicht alles.

- Das Installieren der Anwendung, das Deinstallieren, das Erstellen eines temporären Ordners im Installationsverzeichnis und das Kopieren von Dateien und Ordnern in den temporären Ordner funktionieren alle.

Code: Alle auswählen

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():
    def vers_spark(key):
        return key['name'].replace('Spark','')
    install_exe_if_needed("spark_2_9_4-with-jre.exe",silentflags='-q',key='3057-7228-2063-7466',min_version='2.9.4',killbefore=['spark.exe'],get_version=vers_spark)
    uninstallkey.remove('3057-7228-2063-7466')

    #Creation du dossier tmp et copie du fichier config et répertoire smilley.
    isdir(makepath(programfiles32,'Spark'))
    mkdirs (makepath(programfiles32,'Spark','tmp'))
    filecopyto ('spark.properties', makepath(programfiles32,'Spark','tmp'))
    copytree2 ('xtra', makepath(programfiles32,'Spark','tmp','xtra'))
    if not isdir(makepath(user_appdata,'Spark')):
        mkdirs(makepath(user_appdata,'Spark'))
        filecopyto (makepath(programfiles32,'Spark','tmp','spark.properties'),makepath(user_appdata,'Spark'))
        copytree2 (makepath(programfiles32,'Spark','tmp'),makepath(user_appdata,'Spark'))
    if isdir(makepath(user_appdata,'Spark')):
        filecopyto (makepath(programfiles32,'Spark','tmp','spark.properties'),makepath(user_appdata,'Spark'))
        copytree2 (makepath(programfiles32,'Spark','tmp'),makepath(user_appdata,'Spark'))
    
 def uninstall():
    run('"%s" -q' % makepath(programfiles32,'Spark','uninstall.exe'))
Das Verschieben des Inhalts des tmp-Ordners nach user_appdata funktioniert lokal „auf meinem PC“ über PyScripter, jedoch nicht mit dem Agenten auf dem Zielrechner.
Ich habe die wapt-get.ini-Datei auf dem betreffenden PC geändert und loglevel=debug gesetzt, aber ich habe keine weiteren Informationen darüber, wie das funktioniert.
Die Teile "if not" und "if" werden vom Agenten nicht verarbeitet, unabhängig von ihrer Position im Skript "def install()": oder "def session()":.
Liegt das Problem am Agenten oder am Skript?

Betreff: Pakete für Spark

Veröffentlicht: 9. März 2021 - 11:37 Uhr
von Fred-Gie
Es funktioniert, aber nicht sofort.
Ich habe den Eindruck, dass die Installation in mehreren Schritten erfolgt und möglicherweise sogar erst nach einem Neustart des PCs abgeschlossen wird.