# -*- coding: ISO-8859-1 -*-
""" capellaScript -- 19.12.2003 Paul Villiger
>>> Script Manager Repeat Call

    Ausführen und Zuweisen von beliebeigen Skripts über 10 Menuepunkte.
    Ein Skript kann an "Direct_Call" zugwiesen werden und wir über das Skript "Script_Manager_Direct.py" aufgerufen.
    Die beiden Skripts "Script_Manager.py" und "Script_Manager_Direct.py" sind dafür konzipiert , um sie über die Pluginleiste aufzurufen.
<<<

History: 19.12.03 - Erste Ausgabe
         13.01.03 - Optionen gehen nicht verloren, wenn das aufgerufene Programm diese ueberschreibt                    
         03.02.04 - sys.argv[0] wird auf aufgerufenes Programm gsetzt
         12.06.05 - Optionen werden in richtige Datei geschrieben
         13.06.05 - Fehler mit Optionsdatei
         08.01.07 - Anpassungen an capella 5.12
                   
"""
import os

optionFileName = os.path.join(os.path.split(sys.argv[0])[0],'Script_Manager.opt')
ScriptManagerOptionsFileName = optionFileName
    
class ScriptOptions(ScriptOptions):
    def __init__(self):
        dir, file = os.path.split(ScriptManagerOptionsFileName)
        file = os.path.splitext(file)[0] + '.opt'
        self._optionsFile = os.path.join(dir, file)
        self._oldOptionsFile = self._optionsFile
        s = self._oldOptionsFile
        if s.startswith(getProgramDir()):
            s = s[len(getProgramDir()):]
        s = s.replace(':', '$').replace('\\', '#')
        self._newOptionsFile = os.path.join(getUserDataDir(), s)

sm_options = ScriptOptions() 
opt = sm_options.get()

program = 'prog' + str(int(opt.get('progSel','0')) + 1 )
progFile = opt.get(program,'')

if os.path.isfile(progFile):
    sys.argv[0] = progFile
    ScriptManagerOptionsFileName = progFile
    execfile(progFile)
    # Optionen updaten falls ueberschrieben
    # optNew = sm_options.get()
    # opt.update(optNew)
    # sm_options.set(opt)

else:
    messageBox('Script_Manager_Repeat','Datei "' + progFile + '" existiert nicht')

