# -*- coding: ISO-8859-1 -*-
""" capellaScript -- 06.12.2003 Paul Villiger
>>> Script Manager Direct 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: 07.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
program = 'prog11'
    
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()

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_Direct','Bitte zuerst "Direct_Call" Script definieren!')

